+ scopeid = strchr(address, '%');
+
+ if(scopeid)
+ *scopeid = '\0'; /* Descope. */
+
+ *addrstr = xstrdup(address);
+ *portstr = xstrdup(port);
+ cp();
+}
+
+char *sockaddr2hostname(sockaddr_t *sa)
+{
+ char *str;
+ char address[NI_MAXHOST] = "unknown";
+ char port[NI_MAXSERV] = "unknown";
+ int err;
+ cp();
+ err = getnameinfo(&sa->sa, SALEN(sa->sa), address, sizeof(address), port, sizeof(port), hostnames?0:(NI_NUMERICHOST|NI_NUMERICSERV));
+ if(err)