]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldap/config.c
RFC 4511 calls for unavailableCriticalExtension to returned when
[openldap] / servers / slapd / back-ldap / config.c
index fab18dcb8a75308af04fae5b0c8b1934c5686b2c..d43ef4d8d53196cbe8493c5404e23cb2ddf35d20 100644 (file)
@@ -295,8 +295,8 @@ static ConfigOCs ldapocs[] = {
                "NAME 'olcLDAPConfig' "
                "DESC 'LDAP backend configuration' "
                "SUP olcDatabaseConfig "
-               "MUST olcDbURI "
-               "MAY ( olcDbStartTLS "
+               "MAY ( olcDbURI "
+                       "$ olcDbStartTLS "
                        "$ olcDbACLAuthcDn "
                        "$ olcDbACLPasswd "
                        "$ olcDbACLBind "
@@ -715,10 +715,14 @@ ldap_back_cf_gen( ConfigArgs *c )
                switch( c->type ) {
                case LDAP_BACK_CFG_URI:
                        if ( li->li_uri != NULL ) {
-                               struct berval   bv;
+                               struct berval   bv, bv2;
 
                                ber_str2bv( li->li_uri, 0, 0, &bv );
-                               value_add_one( &c->rvalue_vals, &bv );
+                               bv2.bv_len = bv.bv_len + STRLENOF( "\"\"" );
+                               bv2.bv_val = ch_malloc( bv2.bv_len + 1 );
+                               snprintf( bv2.bv_val, bv2.bv_len + 1,
+                                       "\"%s\"", bv.bv_val );
+                               ber_bvarray_add( &c->rvalue_vals, &bv2 );
 
                        } else {
                                rc = 1;
@@ -1832,7 +1836,7 @@ ldap_back_exop_whoami(
                && !strcmp( op->o_conn->c_authz_backend->be_type, "ldap" )
                && !dn_match( &op->o_ndn, &op->o_conn->c_ndn ) )
        {
-               ldapconn_t      *lc;
+               ldapconn_t      *lc = NULL;
                LDAPControl c, *ctrls[2] = {NULL, NULL};
                LDAPMessage *res;
                Operation op2 = *op;
@@ -1842,8 +1846,7 @@ ldap_back_exop_whoami(
 
                ctrls[0] = &c;
                op2.o_ndn = op->o_conn->c_ndn;
-               lc = ldap_back_getconn(&op2, rs, LDAP_BACK_SENDERR);
-               if ( !lc || !ldap_back_dobind( lc, op, rs, LDAP_BACK_SENDERR ) ) {
+               if ( !ldap_back_dobind( &lc, &op2, rs, LDAP_BACK_SENDERR ) ) {
                        return -1;
                }
                c.ldctl_oid = LDAP_CONTROL_PROXY_AUTHZ;