From 3662413d65e9ba2a899e8ce98ec9c3a549be20c8 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(-) (limited to 'src/providers') 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