diff options
author | Stephen Gallagher <sgallagh@redhat.com> | 2010-06-07 15:59:26 -0400 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2010-06-09 08:29:34 -0400 |
commit | 7bfc287b693d3696bd5b3c60bdb7e543eb230f9b (patch) | |
tree | d9737879f92efe07e7a1e771ffd0e61c7c6a8b20 /src/providers/ldap/sdap_fd_events.c | |
parent | 8c804f6c4c6d5b701b2d688e924b6c2c70057565 (diff) | |
download | sssd_unused-7bfc287b693d3696bd5b3c60bdb7e543eb230f9b.tar.gz sssd_unused-7bfc287b693d3696bd5b3c60bdb7e543eb230f9b.tar.xz sssd_unused-7bfc287b693d3696bd5b3c60bdb7e543eb230f9b.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.c | 16 |
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 32782963..f989c224 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; |