diff options
Diffstat (limited to 'inherit.c')
-rw-r--r-- | inherit.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -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); |