+ if (h) {
+ char **pp;
+
+ p = xstrdup(h->h_name);
+ h = gethostbyname(p);
+ free(p);
+ p = 0;
+ if (h) {
+ for (pp = h->h_addr_list; *pp; pp++) {
+ struct in_addr a;
+ memcpy(&a, *pp, sizeof(a));
+ if (a.s_addr == addr.s_addr) {
+ p = h->h_name;
+ break;
+ }
+ }
+ }
+ }
+
+ if (!p)