From 785fafa36e323bdf213d7d549fd4504f91ac24b3 Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Mon, 4 Aug 2008 21:17:25 +0000 Subject: [PATCH] defer relayed database lookup (ITS#5643) --- servers/slapd/back-relay/init.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/servers/slapd/back-relay/init.c b/servers/slapd/back-relay/init.c index ddfca7f24c..0f6590b40c 100644 --- a/servers/slapd/back-relay/init.c +++ b/servers/slapd/back-relay/init.c @@ -108,10 +108,8 @@ relay_back_cf( ConfigArgs *c ) "of relay dn \"%s\" " "in \"olcRelay \"\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 \"\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 ) ); -- 2.39.5