From 5a920206dd95ea6e77328c9970bb4ada4d641e80 Mon Sep 17 00:00:00 2001
From: Pierangelo Masarati <ando@openldap.org>
Date: Sat, 11 Dec 2004 18:36:31 +0000
Subject: [PATCH] more cleanup

---
 servers/slapd/back-ldap/search.c | 9 +++++----
 servers/slapd/overlays/chain.c   | 7 +++++++
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/servers/slapd/back-ldap/search.c b/servers/slapd/back-ldap/search.c
index e60d6bfc54..4953060c76 100644
--- a/servers/slapd/back-ldap/search.c
+++ b/servers/slapd/back-ldap/search.c
@@ -498,7 +498,8 @@ ldap_back_entry_get(
 {
 	struct ldapconn *lc;
 	int		rc = 1,
-			is_oc;
+			is_oc,
+			do_not_cache;
 	struct berval	bdn;
 	LDAPMessage	*result = NULL,
 			*e = NULL;
@@ -509,17 +510,17 @@ ldap_back_entry_get(
 	int		do_retry = 1;
 
 	/* Tell getconn this is a privileged op */
-	is_oc = op->o_do_not_cache;
+	do_not_cache = op->o_do_not_cache;
 	op->o_do_not_cache = 1;
 	lc = ldap_back_getconn( op, &rs );
 	oconn = op->o_conn;
 	op->o_conn = NULL;
 	if ( !lc || !ldap_back_dobind( lc, op, &rs ) ) {
-		op->o_do_not_cache = is_oc;
+		op->o_do_not_cache = do_not_cache;
 		op->o_conn = oconn;
 		return 1;
 	}
-	op->o_do_not_cache = is_oc;
+	op->o_do_not_cache = do_not_cache;
 	op->o_conn = oconn;
 
 	if ( at ) {
diff --git a/servers/slapd/overlays/chain.c b/servers/slapd/overlays/chain.c
index 5abc50f422..1b3ac75a3f 100644
--- a/servers/slapd/overlays/chain.c
+++ b/servers/slapd/overlays/chain.c
@@ -114,6 +114,13 @@ ldap_chain_response( Operation *op, SlapReply *rs )
 	op->o_callback = NULL;
 
 	if ( lip->url == NULL ) {
+		/* if we parse the URI then by no means 
+		 * we can cache stuff or reuse connections, 
+		 * because in back-ldap there's no caching
+		 * based on the URI value, which is supposed
+		 * to be set once for all (correct?) */
+		op->o_do_not_cache = 1;
+
 		/* FIXME: we're setting the URI of the first referral;
 		 * what if there are more?  Is this something we should
 		 * worry about? */
-- 
GitLab