about summary refs log tree commit homepage
path: root/inherit.c
diff options
context:
space:
mode:
Diffstat (limited to 'inherit.c')
-rw-r--r--inherit.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/inherit.c b/inherit.c
index 75d3050..d2f67f0 100644
--- a/inherit.c
+++ b/inherit.c
@@ -37,16 +37,20 @@ static void register_listen_fd(int fd)
         struct listener tmp;
         struct listener *ins;
         struct mog_ni ni;
-        int rc;
+        struct mog_packaddr mpa;
         struct sockaddr *sa = mog_sockaddr_sa(&tmp.msa);
 
         tmp.len = (socklen_t)sizeof(tmp.msa);
         if (getsockname(fd, sa, &tmp.len) != 0)
                 die_errno("getsockname(fd=%d) failed", fd);
 
-        rc = mog_nameinfo(sa, tmp.len, &ni);
-        if (rc != 0)
-                die("getnameinfo failed: %s (fd=%d)", gai_strerror(rc), fd);
+        if (sa->sa_family != AF_INET && sa->sa_family != AF_INET6)
+                die("invalid address family=%d (not AF_INET/AF_INET6)",
+                    (int)sa->sa_family);
+
+        mog_packaddr_init(&mpa, &tmp.msa, tmp.len);
+
+        mog_nameinfo(&mpa, &ni);
 
         syslog(LOG_INFO, "inherited %s%s on fd=%d", ni.ni_host, ni.ni_serv, fd);