svn commit: samba r1792 - branches/SAMBA_4_0/source/libcli/ldap
idra at samba.org
idra at samba.org
Thu Aug 12 22:23:57 GMT 2004
Author: idra
Date: 2004-08-12 22:23:57 +0000 (Thu, 12 Aug 2004)
New Revision: 1792
WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/&rev=1792&nolog=1
Log:
split ldap_setup_connection() and provide an ldap_bind_simple() function
Modified:
branches/SAMBA_4_0/source/libcli/ldap/ldap.c
Changeset:
Modified: branches/SAMBA_4_0/source/libcli/ldap/ldap.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/ldap/ldap.c 2004-08-12 21:33:21 UTC (rev 1791)
+++ branches/SAMBA_4_0/source/libcli/ldap/ldap.c 2004-08-12 22:23:57 UTC (rev 1792)
@@ -1739,42 +1739,62 @@
return ldap_receive(conn, request->messageid, NULL);
}
-BOOL ldap_setup_connection(struct ldap_connection *conn,
- const char *url)
+struct ldap_message *ldap_bind_simple(struct ldap_connection *conn, const char *userdn, const char *password)
{
- struct ldap_message *msg = new_ldap_message();
struct ldap_message *response;
- BOOL result;
+ struct ldap_message *msg;
+ const char *dn, *pw;
- if (msg == NULL)
+ if (conn == NULL || msg == NULL)
return False;
- if (!ldap_connect(conn, url)) {
- destroy_ldap_message(msg);
- return False;
+ if (userdn) {
+ dn = userdn;
+ } else {
+ if (conn->auth_dn) {
+ dn = conn->auth_dn;
+ } else {
+ dn = "";
+ }
}
- msg->messageid = conn->next_msgid++;
- msg->type = LDAP_TAG_BindRequest;
- msg->r.BindRequest.version = 3;
- if (conn->auth_dn) {
- msg->r.BindRequest.dn = conn->auth_dn;
+ if (password) {
+ pw = password;
} else {
- msg->r.BindRequest.dn = "";
+ if (conn->simple_pw) {
+ pw = conn->simple_pw;
+ } else {
+ pw = "";
+ }
}
- msg->r.BindRequest.mechanism = LDAP_AUTH_MECH_SIMPLE;
- 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)
+ msg = new_ldap_simple_bind_msg(dn, pw);
+ if (!msg)
return False;
- result = (response->r.BindResponse.response.resultcode == 0);
+ response = ldap_transaction(conn, msg);
destroy_ldap_message(msg);
+ return response;
+}
+
+BOOL ldap_setup_connection(struct ldap_connection *conn,
+ const char *url, const char *userdn, const char *password)
+{
+ struct ldap_message *response;
+ BOOL result;
+
+ if (!ldap_connect(conn, url)) {
+ return False;
+ }
+
+ response = ldap_bind_simple(conn, userdn, password);
+ if (response == NULL) {
+ result = False;
+ } else {
+ result = (response->r.BindResponse.response.resultcode == 0);
+ }
+
destroy_ldap_message(response);
return result;
}
More information about the samba-cvs
mailing list