slap_ssf_t ssf = 0;
char *authid = NULL;
#ifdef SLAPD_RLOOKUPS
- char *hebuf = NULL;
+ char hbuf[NI_MAXHOST];
#endif
char *dnsname = NULL;
) {
#ifdef SLAPD_RLOOKUPS
if ( use_reverse_lookup ) {
- struct hostent he;
- int herr;
- struct hostent *hp = NULL;
-# ifdef LDAP_PF_INET6
- if ( from.sa_addr.sa_family == AF_INET6 )
- ldap_pvt_gethostbyaddr_a(
- (char *)&(from.sa_in6_addr.sin6_addr),
- sizeof(from.sa_in6_addr.sin6_addr),
- AF_INET6, &he, &hebuf,
- &hp, &herr );
- else
-# endif /* LDAP_PF_INET6 */
- ldap_pvt_gethostbyaddr_a(
- (char *) &(from.sa_in_addr.sin_addr),
- sizeof(from.sa_in_addr.sin_addr),
- AF_INET, &he, &hebuf, &hp, &herr );
- dnsname = hp ? ldap_pvt_str2lower( hp->h_name ) : NULL;
+ char *herr;
+ if (ldap_pvt_get_hname( &from, len, hbuf,
+ sizeof(hbuf), &herr ) == 0) {
+ ldap_pvt_str2lower( hbuf );
+ dnsname = hbuf;
+ }
}
#else
dnsname = NULL;
authid );
if( authid ) ch_free(authid);
-#ifdef SLAPD_RLOOKUPS
- if( hebuf ) ldap_memfree(hebuf);
-#endif
if( id < 0 ) {
#ifdef NEW_LOGGING