ITS#9603 fix IPv6 addrs with tcpd

This commit is contained in:
Howard Chu 2021-07-01 16:16:19 +01:00
parent 457f5bd4a9
commit a464a6e98f

View file

@ -2317,7 +2317,12 @@ slap_listener(
int rc; int rc;
char *peeraddr, *paend; char *peeraddr, *paend;
peeraddr = peerbv.bv_val + 3; peeraddr = peerbv.bv_val + 3;
paend = strrchr( peeraddr, ':' ); if ( *peeraddr == '[' ) {
peeraddr++;
paend = strrchr( peeraddr, ']' );
} else {
paend = strrchr( peeraddr, ':' );
}
if ( paend ) if ( paend )
*paend = '\0'; *paend = '\0';
ldap_pvt_thread_mutex_lock( &sd_tcpd_mutex ); ldap_pvt_thread_mutex_lock( &sd_tcpd_mutex );
@ -2336,8 +2341,12 @@ slap_listener(
slapd_close(sfd); slapd_close(sfd);
return 0; return 0;
} }
if ( paend ) if ( paend ) {
*paend = ':'; if ( peeraddr[-1] == '[' )
*paend = ']';
else
*paend = ':';
}
} }
#endif /* HAVE_TCPD */ #endif /* HAVE_TCPD */
} }