From 6e3df3e610331fcd060e2c073c1182ac06c19e31 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Thu, 24 Aug 2000 23:25:09 +0000 Subject: [PATCH] Import IPv6 update from devel --- servers/slapd/daemon.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c index b6cf134bbe..9c961d607d 100644 --- a/servers/slapd/daemon.c +++ b/servers/slapd/daemon.c @@ -907,14 +907,22 @@ slapd_daemon_task( #endif /* LDAP_PF_LOCAL */ # ifdef LDAP_PF_INET6 - case AF_INET6: { + case AF_INET6: + if ( IN6_IS_ADDR_V4MAPPED(&from.sa_in6_addr.sin6_addr) ) { + peeraddr = inet_ntoa( *((struct in_addr *) + &from.sa_in6_addr.sin6_addr.s6_addr32[3]) ); + sprintf( peername, "IP=%s:%d", + peeraddr != NULL ? peeraddr : "unknown", + (unsigned) ntohs( from.sa_in6_addr.sin6_port ) ); + } else { char addr[INET6_ADDRSTRLEN]; sprintf( peername, "IP=%s %d", - inet_ntop( AF_INET6, - &from.sa_in6_addr.sin6_addr, - addr, sizeof addr) ? addr : "unknown", - (unsigned) ntohs( from.sa_in6_addr.sin6_port ) ); - } break; + inet_ntop( AF_INET6, + &from.sa_in6_addr.sin6_addr, + addr, sizeof addr) ? addr : "unknown", + (unsigned) ntohs( from.sa_in6_addr.sin6_port ) ); + } + break; # endif /* LDAP_PF_INET6 */ case AF_INET: -- 2.39.5