From 9eec33b0ec3f1ecf1928b71bf9481c2ab2378971 Mon Sep 17 00:00:00 2001 From: Jan Zeleny Date: Mon, 4 Oct 2010 16:35:50 +0200 Subject: Disable events on ldap fd when offline. Erase events on LDAP socket when backend is offline and an event appears on the socket. Normally this would lead to infinite loop, because event is present on the fd, but instead of being processed, an error log is written and the program continues to wait for the event. Ticket: #599 --- src/providers/ldap/sdap_fd_events.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/providers/ldap/sdap_fd_events.c b/src/providers/ldap/sdap_fd_events.c index 347cf8b81..c3f9e118b 100644 --- a/src/providers/ldap/sdap_fd_events.c +++ b/src/providers/ldap/sdap_fd_events.c @@ -49,14 +49,16 @@ int get_fd_from_ldap(LDAP *ldap, int *fd) int remove_ldap_connection_callbacks(struct sdap_handle *sh) { -#ifdef HAVE_LDAP_CONNCB /* sdap_fd_events might be NULL here if sdap_mark_offline() * was called before a connection was established. */ if (sh->sdap_fd_events) { +#ifdef HAVE_LDAP_CONNCB talloc_zfree(sh->sdap_fd_events->conncb); - } +#else + talloc_zfree(sh->sdap_fd_events->fde); #endif + } return EOK; } -- cgit