diff options
author | Stephen Gallagher <sgallagh@redhat.com> | 2010-07-02 08:14:58 -0400 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2010-07-09 15:01:09 -0400 |
commit | ce193d5bfca0630f040843f78c7b2c09de230343 (patch) | |
tree | f7a47e9b8dd202fb48bc97bc094aca8538cee984 /src | |
parent | 8e739b8bc46caa9b2b4172546058af429eb39d5f (diff) | |
download | sssd-ce193d5bfca0630f040843f78c7b2c09de230343.tar.gz sssd-ce193d5bfca0630f040843f78c7b2c09de230343.tar.xz sssd-ce193d5bfca0630f040843f78c7b2c09de230343.zip |
Log TLS errors to syslog
Also adds support for detecting LDAPS errors by adding a check for
SDAP_DIAGNOSTIC_MESSAGE after ldap_search_ext()
Diffstat (limited to 'src')
-rw-r--r-- | src/providers/ldap/sdap_async.c | 18 | ||||
-rw-r--r-- | src/providers/ldap/sdap_async_connection.c | 6 |
2 files changed, 23 insertions, 1 deletions
diff --git a/src/providers/ldap/sdap_async.c b/src/providers/ldap/sdap_async.c index 18f2bc0c5..fee3c11d0 100644 --- a/src/providers/ldap/sdap_async.c +++ b/src/providers/ldap/sdap_async.c @@ -764,7 +764,9 @@ struct tevent_req *sdap_get_generic_send(TALLOC_CTX *memctx, { struct tevent_req *req = NULL; struct sdap_get_generic_state *state = NULL; + char *errmsg; int lret; + int optret; int ret; int msgid; @@ -805,7 +807,21 @@ struct tevent_req *sdap_get_generic_send(TALLOC_CTX *memctx, DEBUG(3, ("ldap_search_ext failed: %s\n", ldap_err2string(lret))); if (lret == LDAP_SERVER_DOWN) { ret = ETIMEDOUT; - } else { + optret = ldap_get_option(state->sh->ldap, + SDAP_DIAGNOSTIC_MESSAGE, + (void*)&errmsg); + if (optret == LDAP_SUCCESS) { + DEBUG(3, ("Connection error: %s\n", errmsg)); + sss_log(SSS_LOG_ERR, "LDAP connection error: %s", errmsg); + ldap_memfree(errmsg); + } + else { + sss_log(SSS_LOG_ERR, "LDAP connection error, %s", + ldap_err2string(lret)); + } + } + + else { ret = EIO; } goto fail; diff --git a/src/providers/ldap/sdap_async_connection.c b/src/providers/ldap/sdap_async_connection.c index fd1cc8c72..69baf1a34 100644 --- a/src/providers/ldap/sdap_async_connection.c +++ b/src/providers/ldap/sdap_async_connection.c @@ -153,11 +153,14 @@ struct tevent_req *sdap_connect_send(TALLOC_CTX *memctx, DEBUG(3, ("ldap_start_tls failed: [%s] [%s]\n", ldap_err2string(lret), errmsg)); + sss_log(SSS_LOG_ERR, "Could not start TLS. %s", errmsg); ldap_memfree(errmsg); } else { DEBUG(3, ("ldap_start_tls failed: [%s]\n", ldap_err2string(lret))); + sss_log(SSS_LOG_ERR, "Could not start TLS. " + "Check for certificate issues."); } goto fail; } @@ -236,11 +239,14 @@ static void sdap_connect_done(struct sdap_op *op, DEBUG(3, ("ldap_install_tls failed: [%s] [%s]\n", ldap_err2string(ret), tlserr)); + sss_log(SSS_LOG_ERR, "Could not start TLS encryption. %s", tlserr); ldap_memfree(tlserr); } else { DEBUG(3, ("ldap_install_tls failed: [%s]\n", ldap_err2string(ret))); + sss_log(SSS_LOG_ERR, "Could not start TLS encryption. " + "Check for certificate issues."); } state->result = ret; |