server/: Use modern functions for address/text conversions.
[tripe] / mon / tripemon.in
index 2470934..593b2e8 100644 (file)
@@ -324,12 +324,14 @@ class Peer (MonitorObject):
   def _setaddr(me, addr):
     """Set the peer's address."""
     if addr[0] == 'INET':
-      ipaddr, port = addr[1:]
+      af, ipaddr, port = addr
       try:
-        name = S.gethostbyaddr(ipaddr)[0]
-        me.addr = 'INET %s:%s [%s]' % (name, port, ipaddr)
-      except S.herror:
-        me.addr = 'INET %s:%s' % (ipaddr, port)
+        name, _ = S.getnameinfo((ipaddr, int(port)),
+                                S.NI_NUMERICSERV | S.NI_NAMEREQD)
+      except S.gaierror:
+        me.addr = '%s %s:%s' % (af, ipaddr, port)
+      else:
+        me.addr = '%s %s:%s [%s]' % (af, name, port, ipaddr)
     else:
       me.addr = ' '.join(addr)