From 4199f4577a383742fb2a5bc6d0d1bca23d064059 Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Wed, 4 May 2005 23:16:56 +0000 Subject: [PATCH] if for any reason ldap_search_ext() fails (e.g. ITS#3706) don't wait for results --- servers/slapd/back-ldap/search.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/servers/slapd/back-ldap/search.c b/servers/slapd/back-ldap/search.c index edd5bba22d..c391347baa 100644 --- a/servers/slapd/back-ldap/search.c +++ b/servers/slapd/back-ldap/search.c @@ -119,18 +119,22 @@ retry: if ( rs->sr_err != LDAP_SUCCESS ) { fail:; - if ( rs->sr_err == LDAP_SERVER_DOWN ) { - if ( do_retry ) { - do_retry = 0; - if ( ldap_back_retry( lc, op, rs, LDAP_BACK_DONTSEND ) ) { - goto retry; - } - } - rc = ldap_back_op_result( lc, op, rs, msgid, LDAP_BACK_DONTSEND ); - ldap_back_freeconn( op, lc ); - lc = NULL; + if ( rs->sr_err != LDAP_SERVER_DOWN ) { + rs->sr_err = slap_map_api2result( rs ); + rs->sr_text = NULL; goto finish; } + + if ( do_retry ) { + do_retry = 0; + if ( ldap_back_retry( lc, op, rs, LDAP_BACK_DONTSEND ) ) { + goto retry; + } + } + rc = ldap_back_op_result( lc, op, rs, msgid, LDAP_BACK_DONTSEND ); + ldap_back_freeconn( op, lc ); + lc = NULL; + goto finish; } /* We pull apart the ber result, stuff it into a slapd entry, and -- 2.39.5