[SSSD] [PATCH] Set LDAP_OPT_RESTART for ldap_sasl_interactive_bind_s()
Sumit Bose
sbose at redhat.com
Tue Mar 23 17:00:56 UTC 2010
Hi,
this patch should fix #431 by setting LDAP_OPT_RESTART before
ldap_sasl_interactive_bind_s() is called.
bye,
Sumit
-------------- next part --------------
From 78f0b014c374e62301e411272ab0443ecce74787 Mon Sep 17 00:00:00 2001
From: Sumit Bose <sbose at redhat.com>
Date: Tue, 23 Mar 2010 17:01:59 +0100
Subject: [PATCH] Set LDAP_OPT_RESTART for ldap_sasl_interactive_bind_s()
This option is needed for the rare case where a poll() call during
ldap_sasl_interactive_bind_s() is interrupted by a signal.
LDAP_OPT_RESTART enables the handling of the EINTR error instead of
returning an error.
---
src/providers/ldap/sdap_async_connection.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/src/providers/ldap/sdap_async_connection.c b/src/providers/ldap/sdap_async_connection.c
index f8c6956..2acbbb8 100644
--- a/src/providers/ldap/sdap_async_connection.c
+++ b/src/providers/ldap/sdap_async_connection.c
@@ -522,6 +522,13 @@ static struct tevent_req *sasl_bind_send(TALLOC_CTX *memctx,
DEBUG(4, ("Executing sasl bind mech: %s, user: %s\n",
sasl_mech, sasl_user));
+ /* Until ldap_sasl_interactive_bind_s() is async we may want to set
+ * LDAP_OPT_RESTART to handle EINTR during poll(). */
+ ret = ldap_set_option(state->sh->ldap, LDAP_OPT_RESTART, LDAP_OPT_ON);
+ if (ret != LDAP_OPT_SUCCESS) {
+ DEBUG(1, ("Failed to set restart option.\n"));
+ }
+
/* FIXME: Warning, this is a sync call!
* No async variant exist in openldap libraries yet */
--
1.6.6.1
More information about the sssd-devel
mailing list