]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
use reentrant gethostbynam
authorKurt Zeilenga <kurt@openldap.org>
Thu, 12 Dec 2002 00:09:33 +0000 (00:09 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Thu, 12 Dec 2002 00:09:33 +0000 (00:09 +0000)
servers/slapd/daemon.c

index 6d1ca980bb9a8ba2fad669001097da525d4219eb..10c47697a5505cda06bc39639119642a75bb3b03 100644 (file)
@@ -1599,19 +1599,25 @@ slapd_daemon_task(
                        ) {
 #ifdef SLAPD_RLOOKUPS
                                if ( use_reverse_lookup ) {
+                                       struct hostent he;
+                                       int herr;
+                                       char *ha = NULL;
+                                       hp = NULL;
 #  ifdef LDAP_PF_INET6
                                        if ( from.sa_addr.sa_family == AF_INET6 )
-                                               hp = gethostbyaddr(
+                                               ldap_pvt_gethostbyaddr_a(
                                                        (char *)&(from.sa_in6_addr.sin6_addr),
                                                        sizeof(from.sa_in6_addr.sin6_addr),
-                                                       AF_INET6 );
+                                                       AF_INET6, &he, &ha,
+                                                       &hp, &herr );
                                        else
 #  endif /* LDAP_PF_INET6 */
-                                       hp = gethostbyaddr(
+                                       ldap_pvt_gethostbyaddr_a(
                                                (char *) &(from.sa_in_addr.sin_addr),
                                                sizeof(from.sa_in_addr.sin_addr),
-                                               AF_INET );
+                                               AF_INET, &he, &ha, &hp, &herr );
                                        dnsname = hp ? ldap_pvt_str2lower( hp->h_name ) : NULL;
+                                       if (ha) ldap_memfree( ha );
                                }
 #else
                                dnsname = NULL;