summaryrefslogtreecommitdiffstats
path: root/src/providers/ldap/sdap_fd_events.c
diff options
context:
space:
mode:
authorStephen Gallagher <sgallagh@redhat.com>2010-06-07 15:59:26 -0400
committerStephen Gallagher <sgallagh@redhat.com>2010-06-09 08:29:47 -0400
commit48c3ce82e0c0fc061e00cb7ddf4f145dfd465edc (patch)
treea8a33a2edd7f9ce9ef0c92f0e6dbc3708494a600 /src/providers/ldap/sdap_fd_events.c
parent83aa1c2629eb7600dd2b6b207daa709a333e2720 (diff)
downloadsssd-48c3ce82e0c0fc061e00cb7ddf4f145dfd465edc.tar.gz
sssd-48c3ce82e0c0fc061e00cb7ddf4f145dfd465edc.tar.xz
sssd-48c3ce82e0c0fc061e00cb7ddf4f145dfd465edc.zip
Disable connection callbacks when going online
Under certain circumstances, the openldap libraries will continue internally trying to reconnect to a connection lost (as during a cable-pull test). We need to drop the reconnection callbacks when marking the backend offline in order to guarantee that they are not called with an invalid sdap_handle.
Diffstat (limited to 'src/providers/ldap/sdap_fd_events.c')
-rw-r--r--src/providers/ldap/sdap_fd_events.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/providers/ldap/sdap_fd_events.c b/src/providers/ldap/sdap_fd_events.c
index 327829630..f989c2249 100644
--- a/src/providers/ldap/sdap_fd_events.c
+++ b/src/providers/ldap/sdap_fd_events.c
@@ -47,7 +47,23 @@ int get_fd_from_ldap(LDAP *ldap, int *fd)
return EOK;
}
+int remove_ldap_connection_callbacks(struct sdap_handle *sh)
+{
+#ifdef HAVE_LDAP_CONNCB
+ int ret;
+
+ ret = talloc_free(sh->sdap_fd_events->conncb);
+ if (ret != 0) {
+ return EIO;
+ }
+
+ sh->sdap_fd_events->conncb = NULL;
+#endif
+ return EOK;
+}
+
#ifdef HAVE_LDAP_CONNCB
+
static int remove_connection_callback(TALLOC_CTX *mem_ctx)
{
int lret;