From: Howard Chu Date: Tue, 2 Dec 2003 03:01:49 +0000 (+0000) Subject: ITS#2764, #2781 revert backend.c patch, just catch the NULL referral X-Git-Tag: OPENLDAP_REL_ENG_2_1_MP~300 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=7fd21ada0706629379885d9cd30770ce8b63098b;p=openldap ITS#2764, #2781 revert backend.c patch, just catch the NULL referral case in extended_op --- diff --git a/servers/slapd/backend.c b/servers/slapd/backend.c index 6b6f4e41d7..a9462bb740 100644 --- a/servers/slapd/backend.c +++ b/servers/slapd/backend.c @@ -353,26 +353,6 @@ int backend_startup(Backend *be) /* open each backend database */ for( i = 0; i < nBackendDB; i++ ) { -#ifndef SLAPD_MULTIMASTER - if ( backendDB[i].be_update_ndn.bv_val && ( - !backendDB[i].be_update_refs && - LDAP_STAILQ_EMPTY( &backendDB[i].be_syncinfo ) && - !default_referral ) ) - { -#ifdef NEW_LOGGING - LDAP_LOG( BACKEND, CRIT, - "backend_startup: slave \"%s\" updateref missing\n", - backendDB[i].be_suffix[0].bv_val, 0, 0 ); - -#else - Debug( LDAP_DEBUG_ANY, - "backend_startup: slave \"%s\" updateref missing\n", - backendDB[i].be_suffix[0].bv_val, 0, 0 ); -#endif - return -1; - } -#endif - /* append global access controls */ acl_append( &backendDB[i].be_acl, global_acl ); diff --git a/servers/slapd/extended.c b/servers/slapd/extended.c index 7c2efda7bf..9f70744e50 100644 --- a/servers/slapd/extended.c +++ b/servers/slapd/extended.c @@ -314,6 +314,11 @@ done2:; if ( rs->sr_err == LDAP_REFERRAL && rs->sr_ref == NULL ) { rs->sr_ref = referral_rewrite( default_referral, NULL, NULL, LDAP_SCOPE_DEFAULT ); + if ( !rs->sr_ref ) rs->sr_ref = default_referral; + if ( !rs->sr_ref ) { + rs->sr_err = LDAP_UNWILLING_TO_PERFORM; + rs->sr_text = "referral missing"; + } } send_ldap_extended( op, rs );