-#ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_DNS
-static LDAPURLDesc *
-dn2servers( LDAP *ld, const char *dn ) /* dn can also be a domain.... */
-{
- char *p, *host, *server_dn, **dxs;
- const char *domain;
- int i, port;
- LDAPURLDesc *srvlist, *prevsrv, *srv;
-
- if (( domain = strrchr( dn, '@' )) != NULL ) {
- ++domain;
- } else {
- domain = dn;
- }
-
- if (( dxs = ldap_getdxbyname( domain )) == NULL ) {
- ld->ld_errno = LDAP_NO_MEMORY;
- return( NULL );
- }
-
- srvlist = NULL;
- for ( i = 0; dxs[ i ] != NULL; ++i ) {
- if (ldap_url_parselist(&srv, dxs[i]) == LDAP_SUCCESS
- || ldap_url_parsehosts(&srv, dxs[i]) == LDAP_SUCCESS)
- {
- /* add to end of list of servers */
- if ( srvlist == NULL ) {
- srvlist = srv;
- } else {
- prevsrv->lud_next = srv;
- }
- prevsrv = srv;
- }
- }
-
- ldap_value_free( dxs );
-
- if ( srvlist == NULL ) {
- ld->ld_errno = LDAP_SERVER_DOWN;
- }
-
- return( srvlist );
-}
-#endif /* LDAP_API_FEATURE_X_OPENLDAP_V2_DNS */