summaryrefslogtreecommitdiffstats
path: root/contrib/sendmail/src/daemon.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/sendmail/src/daemon.c')
-rw-r--r--contrib/sendmail/src/daemon.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/contrib/sendmail/src/daemon.c b/contrib/sendmail/src/daemon.c
index 983ad2f..a1dcbe85 100644
--- a/contrib/sendmail/src/daemon.c
+++ b/contrib/sendmail/src/daemon.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998-2007, 2009 Sendmail, Inc. and its suppliers.
+ * Copyright (c) 1998-2007, 2009, 2010 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@@ -14,7 +14,7 @@
#include <sendmail.h>
#include "map.h"
-SM_RCSID("@(#)$Id: daemon.c,v 8.683 2009/12/18 01:12:40 ca Exp $")
+SM_RCSID("@(#)$Id: daemon.c,v 8.691 2011/01/25 18:31:30 ca Exp $")
#if defined(SOCK_STREAM) || defined(__GNU_LIBRARY__)
# define USE_SOCK_STREAM 1
@@ -1267,7 +1267,8 @@ setupdaemon(daemonaddr)
case AF_INET6:
if (IN6_IS_ADDR_UNSPECIFIED(&daemonaddr->sin6.sin6_addr))
daemonaddr->sin6.sin6_addr =
- LocalDaemon ? in6addr_loopback : in6addr_any;
+ (LocalDaemon && V6LoopbackAddrFound) ?
+ in6addr_loopback : in6addr_any;
port = daemonaddr->sin6.sin6_port;
break;
#endif /* NETINET6 */
@@ -2219,7 +2220,8 @@ makeconnection(host, port, mci, e, enough)
#if NETINET6
case AF_INET6:
if (IN6_IS_ADDR_UNSPECIFIED(&clt_addr.sin6.sin6_addr))
- clt_addr.sin6.sin6_addr = LocalDaemon ?
+ clt_addr.sin6.sin6_addr =
+ (LocalDaemon && V6LoopbackAddrFound) ?
in6addr_loopback : in6addr_any;
else
clt_bind = true;
@@ -2665,6 +2667,7 @@ gothostent:
#if NETINET
case AF_INET:
addr.sin.sin_addr.s_addr = ConnectOnlyTo.sin.sin_addr.s_addr;
+ addr.sa.sa_family = ConnectOnlyTo.sa.sa_family;
break;
#endif /* NETINET */
@@ -2872,7 +2875,10 @@ nextaddr:
/* Use the configured HeloName as appropriate */
if (HeloName != NULL && HeloName[0] != '\0')
+ {
+ SM_FREE_CLR(mci->mci_heloname);
mci->mci_heloname = newstr(HeloName);
+ }
mci_setstat(mci, EX_OK, NULL, NULL);
return EX_OK;
OpenPOWER on IntegriCloud