svn commit: samba r1743 - trunk/source/passdb

mimir at samba.org mimir at samba.org
Wed Aug 11 22:14:05 GMT 2004


Author: mimir
Date: 2004-08-11 22:14:04 +0000 (Wed, 11 Aug 2004)
New Revision: 1743
WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/&rev=1743&nolog=1
Log:
Implementation of searching trust password by sid.


rafal


Modified:
   trunk/source/passdb/pdb_ldap.c

Changeset:
Modified: trunk/source/passdb/pdb_ldap.c
===================================================================
--- trunk/source/passdb/pdb_ldap.c	2004-08-11 22:09:54 UTC (rev 1742)
+++ trunk/source/passdb/pdb_ldap.c	2004-08-11 22:14:04 UTC (rev 1743)
@@ -3613,8 +3613,40 @@
 
 static NTSTATUS ldapsam_gettrustpwsid(struct pdb_methods *methods, SAM_TRUST_PASSWD *trust, const DOM_SID *sid)
 {
-	NTSTATUS nt_status = NT_STATUS_NOT_IMPLEMENTED;
-	return nt_status;
+	struct ldapsam_privates *ldap_state = (struct ldapsam_privates*)methods->private_data;
+	int rc;
+	BOOL ret;
+	fstring sidstr;
+	pstring filter;
+	char **attr_list;
+	const char *attr_sid = get_attr_key2string(trustpw_attr_list, LDAP_ATTR_SID);
+
+	pstr_sprintf(filter, "(&(%s=%s)(objectclass=%s))", attr_sid,
+		     sid_to_string(sidstr, pdb_get_tp_domain_sid(trust)),
+		     LDAP_OBJ_TRUST_PASSWORD);
+
+	attr_list = get_attr_list(trustpw_attr_list);
+	rc = smbldap_search_suffix(ldap_state->smbldap_state, filter, attr_list,
+	                           &ldap_state->result);
+	free_attr_list(attr_list);
+
+	if (rc != LDAP_SUCCESS) {
+		ldap_msgfree(ldap_state->result);
+		ldap_state->result = NULL;
+		return NT_STATUS_UNSUCCESSFUL;
+	}
+
+	ldap_state->entry = ldap_first_entry(ldap_state->smbldap_state->ldap_struct,
+	                                     ldap_state->result);
+	if (!ldap_state->entry)
+		return NT_STATUS_NOT_FOUND;
+
+	memset((void*)trust, 0, sizeof(*trust));
+	ret = init_trustpw_from_ldap(ldap_state, trust, ldap_state->entry);
+	if (ret)
+		return NT_STATUS_OK;
+	else
+		return NT_STATUS_UNSUCCESSFUL;
 }
 
 



More information about the samba-cvs mailing list