diff options
author | Lukas Slebodnik <lslebodn@redhat.com> | 2013-10-23 18:05:58 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-10-25 15:40:43 +0200 |
commit | 7534f145c7b376dd5320d7f73022923f087d49a9 (patch) | |
tree | 97bf9bb2b631637d33f930ad6c174a26abf05d93 /src/providers/ldap/sdap_id_op.c | |
parent | 85297c5f964d4426dd811be620f35f032040e720 (diff) | |
download | sssd-7534f145c7b376dd5320d7f73022923f087d49a9.tar.gz sssd-7534f145c7b376dd5320d7f73022923f087d49a9.tar.xz sssd-7534f145c7b376dd5320d7f73022923f087d49a9.zip |
AD: fall back to LDAP if GC is not available.
AD provider went offline if the Global Catalog could not be connected although
there was also the LDAP port available. With this patch, AD provider will
fall back to the LDAP port before going offline.
New boolean flag ignore_mark_offline was added to structure sdap_id_conn_ctx
If this flag is enabled function be_mark_offline will not be called.
Resolves:
https://fedorahosted.org/sssd/ticket/2104
Diffstat (limited to 'src/providers/ldap/sdap_id_op.c')
-rw-r--r-- | src/providers/ldap/sdap_id_op.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/providers/ldap/sdap_id_op.c b/src/providers/ldap/sdap_id_op.c index 52cf78569..5e166e19f 100644 --- a/src/providers/ldap/sdap_id_op.c +++ b/src/providers/ldap/sdap_id_op.c @@ -553,10 +553,17 @@ static void sdap_id_op_connect_done(struct tevent_req *subreq) } if (ret != EOK && !can_retry) { - /* be is going offline as there is no more servers to try */ - DEBUG(1, ("Failed to connect, going offline (%d [%s])\n", - ret, strerror(ret))); - be_mark_offline(conn_cache->id_conn->id_ctx->be); + if (conn_cache->id_conn->ignore_mark_offline) { + DEBUG(SSSDBG_TRACE_FUNC, + ("Failed to connect to server, but ignore mark offline " + "is enabled.\n")); + } else { + /* be is going offline as there is no more servers to try */ + DEBUG(SSSDBG_CRIT_FAILURE, + ("Failed to connect, going offline (%d [%s])\n", + ret, strerror(ret))); + be_mark_offline(conn_cache->id_conn->id_ctx->be); + } is_offline = true; } |