]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/request.c
Add support for useronly configuration attributes.
[openldap] / libraries / libldap / request.c
index 2ea52590727b3eef3d865d0d61a0dbfb5a2d0b7a..badd2468a6a5333705a99ec2631fa716b3c58187 100644 (file)
@@ -568,7 +568,7 @@ ldap_free_request( LDAP *ld, LDAPRequest *lr )
 int
 ldap_chase_referrals( LDAP *ld, LDAPRequest *lr, char **errstrp, int *hadrefp )
 {
-       int             rc, count, len, newdn = 0;
+       int             rc, count, len, newdn;
 #ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_DNS
        int             ldapref;
 #endif /* LDAP_API_FEATURE_X_OPENLDAP_V2_DNS */
@@ -653,16 +653,17 @@ ldap_chase_referrals( LDAP *ld, LDAPRequest *lr, char **errstrp, int *hadrefp )
                        continue;
                }
 
+               /* NOTE! This code treats "ldap://host/" differently
+                * from "ldap://host". The behavior is wrong, but is
+                * left here intentionally to maintain compatibility
+                * with OpenLDAP 1.x and UMich 3.3 clients.
+                */
                *hadrefp = 1;
                if (( refdn = strchr( tmpref, '/' )) != NULL ) {
                        *refdn++ = '\0';
-                       if ( *refdn != '\0' )
-                       {
-                               newdn = 1;
-                       } else
-                       {
-                               refdn = NULL;
-                       }
+                       newdn = 1;
+               } else {
+                       newdn = 0;
                }
 
                if (( ber = re_encode_request( ld, origreq->lr_ber,