summaryrefslogtreecommitdiff
path: root/source4/libcli
diff options
context:
space:
mode:
authorSimo Sorce <idra@samba.org>2004-08-12 08:00:45 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:57:56 -0500
commit2e28edd233964f54b46fde10217f93f571ed1d6d (patch)
treea4c917b507e6554ed0b60b98a437b22a2100daed /source4/libcli
parent8a0f6c9c7909162a9669197bc0238d0636de69da (diff)
downloadsamba-2e28edd233964f54b46fde10217f93f571ed1d6d.tar.gz
samba-2e28edd233964f54b46fde10217f93f571ed1d6d.tar.bz2
samba-2e28edd233964f54b46fde10217f93f571ed1d6d.zip
r1771: OK Let's add tests for ldap.
Thanks to Metze and Volker for their unvaluable support :) (This used to be commit e6a6c0737ab94d58930c0d4e1ef0bb4d99510833)
Diffstat (limited to 'source4/libcli')
-rw-r--r--source4/libcli/ldap/ldap.c17
-rw-r--r--source4/libcli/util/asn1.c2
2 files changed, 14 insertions, 5 deletions
diff --git a/source4/libcli/ldap/ldap.c b/source4/libcli/ldap/ldap.c
index ef1d43022f..63dd7d4c7b 100644
--- a/source4/libcli/ldap/ldap.c
+++ b/source4/libcli/ldap/ldap.c
@@ -58,6 +58,7 @@ struct ldap_parse_tree {
};
#define LDAP_ALL_SEP "()&|=!"
+#define LDAP_CONNECTION_TIMEOUT 10000
/*
return next token element. Caller frees
@@ -1534,6 +1535,8 @@ struct ldap_connection *new_ldap_connection(void)
result->outstanding = NULL;
result->searchid = 0;
result->search_entries = NULL;
+ result->auth_dn = NULL;
+ result->simple_pw = NULL;
return result;
}
@@ -1553,7 +1556,7 @@ BOOL ldap_connect(struct ldap_connection *conn, const char *url)
putip((char *)&ip, (char *)hp->h_addr);
- conn->sock = open_socket_out(SOCK_STREAM, &ip, conn->port, 10000);
+ conn->sock = open_socket_out(SOCK_STREAM, &ip, conn->port, LDAP_CONNECTION_TIMEOUT);
return (conn->sock >= 0);
}
@@ -1753,9 +1756,17 @@ BOOL ldap_setup_connection(struct ldap_connection *conn,
msg->messageid = conn->next_msgid++;
msg->type = LDAP_TAG_BindRequest;
msg->r.BindRequest.version = 3;
- msg->r.BindRequest.dn = conn->auth_dn;
+ if (conn->auth_dn) {
+ msg->r.BindRequest.dn = conn->auth_dn;
+ } else {
+ msg->r.BindRequest.dn = "";
+ }
msg->r.BindRequest.mechanism = LDAP_AUTH_MECH_SIMPLE;
- msg->r.BindRequest.creds.password = conn->simple_pw;
+ if (conn->simple_pw) {
+ msg->r.BindRequest.creds.password = conn->simple_pw;
+ } else {
+ msg->r.BindRequest.creds.password = "";
+ }
if ((response = ldap_transaction(conn, msg)) == NULL)
return False;
diff --git a/source4/libcli/util/asn1.c b/source4/libcli/util/asn1.c
index 6ddce7882c..6dc459d59d 100644
--- a/source4/libcli/util/asn1.c
+++ b/source4/libcli/util/asn1.c
@@ -313,7 +313,6 @@ BOOL asn1_start_tag(ASN1_DATA *data, uint8_t tag)
return !data->has_error;
}
-#if 0
static BOOL read_one_uint8(int sock, uint8_t *result, ASN1_DATA *data,
const struct timeval *endtime)
{
@@ -375,7 +374,6 @@ BOOL asn1_read_sequence_until(int sock, ASN1_DATA *data,
return True;
}
-#endif
/* Get the length to be expected in buf */
BOOL asn1_object_length(uint8_t *buf, size_t buf_length,