summaryrefslogtreecommitdiff
path: root/lib/openldap.c
diff options
context:
space:
mode:
authorng0 <ng0@n0.is>2018-01-21 22:37:57 +0000
committerng0 <ng0@n0.is>2018-01-21 22:37:57 +0000
commitcc5f34a99383aa99937d545f25eb1eb8cabe2ca1 (patch)
treef295bd95086d293679d9d4f0a97ce66c66dc2137 /lib/openldap.c
parent851483824fd0071cc8ac5454c475a90dfcb5f6c5 (diff)
parent9d82cde7b2bd839600041b9ca1f2f743cce23df2 (diff)
downloadgnurl-cc5f34a99383aa99937d545f25eb1eb8cabe2ca1.tar.gz
gnurl-cc5f34a99383aa99937d545f25eb1eb8cabe2ca1.tar.bz2
gnurl-cc5f34a99383aa99937d545f25eb1eb8cabe2ca1.zip
Merge branch 'master' of https://github.com/curl/curl
Diffstat (limited to 'lib/openldap.c')
-rw-r--r--lib/openldap.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/openldap.c b/lib/openldap.c
index 274d70f02..4002e3cc2 100644
--- a/lib/openldap.c
+++ b/lib/openldap.c
@@ -51,6 +51,25 @@
#include "curl_memory.h"
#include "memdebug.h"
+/*
+ * Uncommenting this will enable the built-in debug logging of the openldap
+ * library. The debug log level can be set using the CURL_OPENLDAP_TRACE
+ * environment variable. The debug output is written to stderr.
+ *
+ * The library supports the following debug flags:
+ * LDAP_DEBUG_NONE 0x0000
+ * LDAP_DEBUG_TRACE 0x0001
+ * LDAP_DEBUG_CONSTRUCT 0x0002
+ * LDAP_DEBUG_DESTROY 0x0004
+ * LDAP_DEBUG_PARAMETER 0x0008
+ * LDAP_DEBUG_ANY 0xffff
+ *
+ * For example, use CURL_OPENLDAP_TRACE=0 for no debug,
+ * CURL_OPENLDAP_TRACE=2 for LDAP_DEBUG_CONSTRUCT messages only,
+ * CURL_OPENLDAP_TRACE=65535 for all debug message levels.
+ */
+/* #define CURL_OPENLDAP_DEBUG */
+
#ifndef _LDAP_PVT_H
extern int ldap_pvt_url_scheme2proto(const char *);
extern int ldap_init_fd(ber_socket_t fd, int proto, const char *url,
@@ -204,6 +223,15 @@ static CURLcode ldap_connect(struct connectdata *conn, bool *done)
snprintf(ptr, sizeof(hosturl)-(ptr-hosturl), "://%s:%d",
conn->host.name, conn->remote_port);
+#ifdef CURL_OPENLDAP_DEBUG
+ static int do_trace = 0;
+ const char *env = getenv("CURL_OPENLDAP_TRACE");
+ do_trace = (env && strtol(env, NULL, 10) > 0);
+ if(do_trace) {
+ ldap_set_option(li->ld, LDAP_OPT_DEBUG_LEVEL, &do_trace);
+ }
+#endif
+
rc = ldap_init_fd(conn->sock[FIRSTSOCKET], li->proto, hosturl, &li->ld);
if(rc) {
failf(data, "LDAP local: Cannot connect to %s, %s",