]> git.sur5r.net Git - openldap/commitdiff
More dn_normalize() -> dnNormalize() changes
authorKurt Zeilenga <kurt@openldap.org>
Fri, 28 Dec 2001 07:30:34 +0000 (07:30 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Fri, 28 Dec 2001 07:30:34 +0000 (07:30 +0000)
servers/slapd/back-dnssrv/search.c
servers/slapd/back-passwd/search.c

index 09cade5256718cf63c473c5b35617a5d768193e4..2132c46ff9a96d30a80f3fa5fe549d08a96b41d8 100644 (file)
@@ -38,7 +38,8 @@ dnssrv_back_search(
        char *domain = NULL;
        char *hostlist = NULL;
        char **hosts = NULL;
-       char *refdn, *nrefdn;
+       char *refdn;
+       struct berval *nrefdn = NULL;
        struct berval **urls = NULL;
 
        assert( get_manageDSAit( op ) );
@@ -107,12 +108,22 @@ dnssrv_back_search(
                        NULL, "DNS SRV problem processing manageDSAit control",
                        NULL, NULL );
                goto done;
-       }
 
-       nrefdn = ch_strdup( refdn );
-       dn_normalize(nrefdn);
+       } else {
+               struct berval bv;
+               bv.bv_val = refdn;
+               bv.bv_len = strlen( refdn );
+
+               rc = dnNormalize( NULL, &bv, &nrefdn );
+               if( rc != LDAP_SUCCESS ) {
+                       send_ldap_result( conn, op, LDAP_OTHER,
+                               NULL, "DNS SRV problem processing manageDSAit control",
+                               NULL, NULL );
+                       goto done;
+               }
+       }
 
-       if( strcmp( nrefdn, ndn->bv_val ) != 0 ) {
+       if( strcmp( nrefdn->bv_val, ndn->bv_val ) != 0 ) {
                /* requested dn is subordinate */
 
                Debug( LDAP_DEBUG_TRACE,
@@ -211,7 +222,7 @@ dnssrv_back_search(
        }
 
        free( refdn );
-       free( nrefdn );
+       ber_bvfree( nrefdn );
 
 done:
        if( domain != NULL ) ch_free( domain );
index 4f75e319576f83039d7cd0f8243016ee39472b33..42399bc72ec7b8db251a889a8d9e34c7fc35fa26 100644 (file)
@@ -328,10 +328,11 @@ pw2entry( Backend *be, struct passwd *pw, char *rdn )
                attr_merge(e, ad_description, vals);
 
                s = strchr(val.bv_val, ',');
-               if (s)
-                       *s = '\0';
+               if (s) *s = '\0';
+
                s = strchr(val.bv_val, '&');
                if (s) {
+                       char buf[256];
                        int i = s - val.bv_val;
                        strncpy(buf, val.bv_val, i);
                        s = buf+i;