Apparently at some point we started returning errors in a way sssd_pam doesn't like and auth was failing. I hadn't much time to exactly analyze what was going on as I was struggling with other problems while testing on a newly installed rawhide.
Apparently this patch made it work for me, so I'll posting it for consideration. I'd like to revisit error handling after the feature complete. Simo. -- Simo Sorce * Red Hat, Inc * New York
>From c2699fdef22e521aeeb36561d01dfe6e04ac901d Mon Sep 17 00:00:00 2001 From: Simo Sorce <[email protected]> Date: Tue, 10 Nov 2009 16:39:17 -0500 Subject: [PATCH] Try to fix offline logins --- VERSION | 2 +- server/providers/ldap/ldap_id.c | 18 ++++++------------ 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/VERSION b/VERSION index faef31a..972ef76 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.7.0 +0.7.9 diff --git a/server/providers/ldap/ldap_id.c b/server/providers/ldap/ldap_id.c index 124ee7d..52391c2 100644 --- a/server/providers/ldap/ldap_id.c +++ b/server/providers/ldap/ldap_id.c @@ -709,10 +709,8 @@ static void sdap_account_info_users_done(struct tevent_req *req) dp_err = DP_ERR_FATAL; error = "Enum Users Failed"; - if (ret == ETIMEDOUT) { - dp_err = DP_ERR_TIMEOUT; - } - if (ret == ETIMEDOUT || ret == EFAULT) { + if (ret == ETIMEDOUT || ret == EFAULT || ret == EIO) { + dp_err = DP_ERR_OFFLINE; ctx = talloc_get_type(breq->be_ctx->bet_info[BET_ID].pvt_bet_data, struct sdap_id_ctx); sdap_mark_offline(ctx); @@ -737,10 +735,8 @@ static void sdap_account_info_groups_done(struct tevent_req *req) dp_err = DP_ERR_FATAL; error = "Enum Groups Failed"; - if (ret == ETIMEDOUT) { - dp_err = DP_ERR_TIMEOUT; - } - if (ret == ETIMEDOUT || ret == EFAULT) { + if (ret == ETIMEDOUT || ret == EFAULT || ret == EIO) { + dp_err = DP_ERR_OFFLINE; ctx = talloc_get_type(breq->be_ctx->bet_info[BET_ID].pvt_bet_data, struct sdap_id_ctx); sdap_mark_offline(ctx); @@ -765,10 +761,8 @@ static void sdap_account_info_initgr_done(struct tevent_req *req) dp_err = DP_ERR_FATAL; error = "Init Groups Failed"; - if (ret == ETIMEDOUT) { - dp_err = DP_ERR_TIMEOUT; - } - if (ret == ETIMEDOUT || ret == EFAULT) { + if (ret == ETIMEDOUT || ret == EFAULT || ret == EIO) { + dp_err = DP_ERR_OFFLINE; ctx = talloc_get_type(breq->be_ctx->bet_info[BET_ID].pvt_bet_data, struct sdap_id_ctx); sdap_mark_offline(ctx); -- 1.6.5.2
_______________________________________________ sssd-devel mailing list [email protected] https://fedorahosted.org/mailman/listinfo/sssd-devel
