]> git.sur5r.net Git - openldap/commitdiff
defer relayed database lookup (ITS#5643)
authorPierangelo Masarati <ando@openldap.org>
Mon, 4 Aug 2008 21:17:25 +0000 (21:17 +0000)
committerPierangelo Masarati <ando@openldap.org>
Mon, 4 Aug 2008 21:17:25 +0000 (21:17 +0000)
servers/slapd/back-relay/init.c

index ddfca7f24cb6f9f00857900810739365373590af..0f6590b40c7c9fd0524ddbb47748a3e8e0085e55 100644 (file)
@@ -108,10 +108,8 @@ relay_back_cf( ConfigArgs *c )
                                "of relay dn \"%s\" "
                                "in \"olcRelay <dn>\"\n",
                                c->value_dn.bv_val );
-                       Log2( LDAP_DEBUG_ANY, LDAP_LEVEL_ERR,
+                       Log2( LDAP_DEBUG_CONFIG, LDAP_LEVEL_ERR,
                                "%s: %s.\n", c->log, c->cr_msg );
-                       rc = 1;
-                       goto relay_done;
 
                } else if ( bd->be_private == c->be->be_private ) {
                        snprintf( c->cr_msg, sizeof( c->cr_msg),
@@ -213,7 +211,17 @@ relay_back_db_open( Backend *be, ConfigReply *cr )
                ri->ri_bd = select_backend( &ri->ri_realsuffix, 1 );
 
                /* must be there: it was during config! */
-               assert( ri->ri_bd != NULL );
+               if ( ri->ri_bd == NULL ) {
+                       snprintf( cr->msg, sizeof( cr->msg),
+                               "cannot find database "
+                               "of relay dn \"%s\" "
+                               "in \"olcRelay <dn>\"\n",
+                               ri->ri_realsuffix.bv_val );
+                       Log1( LDAP_DEBUG_ANY, LDAP_LEVEL_ERR,
+                               "relay_back_db_open: %s.\n", cr->msg );
+
+                       return 1;
+               }
 
                /* inherit controls */
                AC_MEMCPY( be->be_ctrls, ri->ri_bd->be_ctrls, sizeof( be->be_ctrls ) );