diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c index 9a754828d9..87883f0ad1 100644 --- a/servers/slapd/daemon.c +++ b/servers/slapd/daemon.c @@ -537,11 +537,10 @@ static Listener * slap_open_listener( inet_ntop( AF_INET, &((struct sockaddr_in *)*sal)->sin_addr, addr, sizeof(addr) ); s = addr; - port = ((struct sockaddr_in *)*sal) ->sin_port; #else - s = inet_ntoa( l.sl_addr.sin_addr ); - port = l.sl_addr.sin_port; + s = inet_ntoa( ((struct sockaddr_in *) *sal)->sin_addr ); #endif + port = ntohs( ((struct sockaddr_in *)*sal) ->sin_port ); l.sl_name = ch_malloc( sizeof("IP=255.255.255.255:65535") ); sprintf( l.sl_name, "IP=%s:%d", s != NULL ? s : "unknown" , port ); @@ -552,7 +551,7 @@ static Listener * slap_open_listener( char addr[INET6_ADDRSTRLEN]; inet_ntop( AF_INET6, &((struct sockaddr_in6 *)*sal)->sin6_addr, addr, sizeof addr); - port = ((struct sockaddr_in6 *)*sal)->sin6_port; + port = ntohs( ((struct sockaddr_in6 *)*sal)->sin6_port ); l.sl_name = ch_malloc( strlen(addr) + sizeof("IP= 65535") ); sprintf( l.sl_name, "IP=%s %d", addr, port ); } break;