r14060: Only set the last rebind timestamp when we did rebind after a non-read
authorGünther Deschner <gd@samba.org>
Thu, 9 Mar 2006 09:08:11 +0000 (09:08 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 16:11:09 +0000 (11:11 -0500)
LDAP operation. That way we avoid the replication sleep after a simple
redirected search operation

Guenther
(This used to be commit d236caac211ff45a3e2da73a3b0316194740a722)

source3/lib/smbldap.c

index e54464a49be550e0edeccdab975ea9f5d71ed0ed..327c5a7c4de6a5ed12121cd4d71d91e713d12802 100644 (file)
@@ -853,8 +853,27 @@ static int rebindproc_connect_with_state (LDAP *ldap_struct,
            username and password to? */
 
        rc = ldap_simple_bind_s(ldap_struct, ldap_state->bind_dn, ldap_state->bind_secret);
-       
-       GetTimeOfDay(&ldap_state->last_rebind);
+
+       /* only set the last rebind timestamp when we did rebind after a
+        * non-read LDAP operation. That way we avoid the replication sleep
+        * after a simple redirected search operation - Guenther */
+
+       switch (request) {
+
+               case LDAP_REQ_MODIFY:
+               case LDAP_REQ_ADD:
+               case LDAP_REQ_DELETE:
+               case LDAP_REQ_MODDN:
+               case LDAP_REQ_EXTENDED:
+                       DEBUG(10,("rebindproc_connect_with_state: "
+                               "setting last_rebind timestamp "
+                               "(req: 0x%02x)\n", request));
+                       GetTimeOfDay(&ldap_state->last_rebind);
+                       break;
+               default:
+                       ZERO_STRUCT(ldap_state->last_rebind);
+                       break;
+       }
 
        return rc;
 }