From e753e3d5a596e081eeef637ad0f5f4e3ebd90a15 Mon Sep 17 00:00:00 2001 From: Stef Walter Date: Thu, 24 Mar 2005 06:21:57 +0000 Subject: Supress weird warnings when looking up names of local unix connections. --- ChangeLog | 1 + common/spio.c | 26 ++++++++++++++------------ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 71b5e2b..afdafc9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,7 @@ - Don't leak file descriptors when clamsmtpd can't connect to outgoing SMTP server [Chris Mason] - Now accepts special format arguments on 'Header' line [Olivier Beyssac] + - Supress weird warnings when looking up names of local unix connections. 1.3 [2005-01-27] - Fixed crasher when outgoing connection couldn't be established diff --git a/common/spio.c b/common/spio.c index a723936..c26f81a 100644 --- a/common/spio.c +++ b/common/spio.c @@ -117,6 +117,18 @@ void spio_attach(spctx_t* ctx, spio_t* io, int fd, struct sockaddr_any* peer) io->fd = fd; + /* Get the address on which we accepted the connection */ + memset(&locaddr, 0, sizeof(locaddr)); + SANY_LEN(locaddr) = sizeof(locaddr); + + if(getsockname(fd, &SANY_ADDR(locaddr), &SANY_LEN(locaddr)) == -1 || + sock_any_ntop(&locaddr, io->localname, MAXPATHLEN, SANY_OPT_NOPORT) == -1) + { + if (errno != EAFNOSUPPORT) + sp_message(ctx, LOG_WARNING, "%s: couldn't get socket address", GET_IO_NAME(io)); + strlcpy(io->localname, "UNKNOWN", MAXPATHLEN); + } + /* If the caller doesn't want the peer then use our own */ if (peer == NULL) peer = &peeraddr; @@ -127,21 +139,11 @@ void spio_attach(spctx_t* ctx, spio_t* io, int fd, struct sockaddr_any* peer) if(getpeername(fd, &SANY_ADDR(*peer), &SANY_LEN(*peer)) == -1 || sock_any_ntop(peer, io->peername, MAXPATHLEN, SANY_OPT_NOPORT) == -1) { - sp_message(ctx, LOG_WARNING, "%s: couldn't get peer address", GET_IO_NAME(io)); + if (errno != EAFNOSUPPORT) + sp_message(ctx, LOG_WARNING, "%s: couldn't get peer address", GET_IO_NAME(io)); strlcpy(io->peername, "UNKNOWN", MAXPATHLEN); } - /* Get the address on which we accepted the connection */ - memset(&locaddr, 0, sizeof(locaddr)); - SANY_LEN(locaddr) = sizeof(locaddr); - - if(getsockname(fd, &SANY_ADDR(locaddr), &SANY_LEN(locaddr)) == -1 || - sock_any_ntop(&locaddr, io->localname, MAXPATHLEN, SANY_OPT_NOPORT) == -1) - { - sp_message(ctx, LOG_WARNING, "%s: couldn't get socket address", GET_IO_NAME(io)); - strlcpy(io->localname, "UNKNOWN", MAXPATHLEN); - } - /* As a double check */ io->line[0] = 0; io->_nx = NULL; -- cgit v1.2.3