diff options
Diffstat (limited to '')
| -rw-r--r-- | net/openldap20-server/files/patch-servers::slapd::daemon.c | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/net/openldap20-server/files/patch-servers::slapd::daemon.c b/net/openldap20-server/files/patch-servers::slapd::daemon.c index 75fced252e07..efa32eaf6c79 100644 --- a/net/openldap20-server/files/patch-servers::slapd::daemon.c +++ b/net/openldap20-server/files/patch-servers::slapd::daemon.c @@ -1,28 +1,21 @@ ---- servers/slapd/daemon.c.orig Thu Apr 24 07:51:08 2003 -+++ servers/slapd/daemon.c Thu Apr 24 07:52:05 2003 -@@ -863,6 +863,7 @@ - - char *dnsname = NULL; - char *peeraddr; -+ char peeraddr6[INET6_ADDRSTRLEN]; - #ifdef LDAP_PF_LOCAL - char peername[MAXPATHLEN + sizeof("PATH=")]; - #elif defined(LDAP_PF_INET6) -@@ -995,12 +996,12 @@ - peeraddr != NULL ? peeraddr : "unknown", +# +# ITS#1918: slapd panics with real ipv6 addresses +# +--- servers/slapd/daemon.c.orig Tue Sep 23 17:21:54 2003 ++++ servers/slapd/daemon.c Tue Sep 23 17:25:02 2003 +@@ -996,10 +996,12 @@ (unsigned) ntohs( from.sa_in6_addr.sin6_port ) ); } else { -- char addr[INET6_ADDRSTRLEN]; -- sprintf( peername, "IP=%s %d", + char addr[INET6_ADDRSTRLEN]; ++ ++ peeraddr = (char *) inet_ntop( AF_INET6, ++ &from.sa_in6_addr.sin6_addr, ++ addr, sizeof addr ); + sprintf( peername, "IP=%s %d", - inet_ntop( AF_INET6, - &from.sa_in6_addr.sin6_addr, - addr, sizeof addr) ? addr : "unknown", -+ const char *addr = inet_ntop( AF_INET6, -+ &from.sa_in6_addr.sin6_addr, -+ peeraddr6, sizeof peeraddr6); -+ sprintf( peername, "IP=%s %d", addr ? addr : "unknown", ++ peeraddr != NULL ? peeraddr : "unknown", (unsigned) ntohs( from.sa_in6_addr.sin6_port ) ); -+ if (addr) peeraddr = addr; } break; - # endif /* LDAP_PF_INET6 */ |
