diff options
author | Andrew Bartlett <abartlet@samba.org> | 2003-07-05 10:39:41 +0000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2003-07-05 10:39:41 +0000 |
commit | 85921dbd6fa417aa451ab9b6e88ecb7900333549 (patch) | |
tree | 8bdb5a575f2f9dc06d29480bbf5165e5bb8760c6 /source3/passdb/pdb_ldap.c | |
parent | a3ddfa5069c9df07626135aa5fd2ec411c41943f (diff) | |
download | samba-85921dbd6fa417aa451ab9b6e88ecb7900333549.tar.gz samba-85921dbd6fa417aa451ab9b6e88ecb7900333549.tar.bz2 samba-85921dbd6fa417aa451ab9b6e88ecb7900333549.zip |
Add some debug statments to our vampire code - try to make it easier to track
down failures.
Add a 'auto-add on modify' feature to guestsam
Fix some segfault bugs on no-op idmap modifications, and on new idmappings that
do not have a DN to tack onto.
Make the 'private data' a bit more robust.
Andrew Bartlett
(This used to be commit 6c48309cda9538da5a32f3d88a7bb9c413ae9e8e)
Diffstat (limited to 'source3/passdb/pdb_ldap.c')
-rw-r--r-- | source3/passdb/pdb_ldap.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c index 140b87afb9..0d16a1a985 100644 --- a/source3/passdb/pdb_ldap.c +++ b/source3/passdb/pdb_ldap.c @@ -1528,6 +1528,8 @@ static int ldapsam_get_ldap_user_by_sid(struct ldapsam_privates *ldap_state, { int rc = -1; char ** attr_list; + uint32 rid; + switch ( ldap_state->schema_ver ) { case SCHEMAVER_SAMBASAMACCOUNT: @@ -1540,8 +1542,6 @@ static int ldapsam_get_ldap_user_by_sid(struct ldapsam_privates *ldap_state, break; case SCHEMAVER_SAMBAACCOUNT: - { - uint32 rid; if (!sid_peek_check_rid(&ldap_state->domain_sid, sid, &rid)) { return rc; } @@ -1552,8 +1552,7 @@ static int ldapsam_get_ldap_user_by_sid(struct ldapsam_privates *ldap_state, if ( rc != LDAP_SUCCESS ) return rc; - } - break; + break; } return rc; } @@ -1610,7 +1609,7 @@ static NTSTATUS ldapsam_getsampwsid(struct pdb_methods *my_methods, SAM_ACCOUNT } else { ldap_msgfree(result); } - return ret; + return NT_STATUS_NO_SUCH_USER; } /******************************************************************** @@ -1810,8 +1809,9 @@ static NTSTATUS ldapsam_update_sam_account(struct pdb_methods *my_methods, SAM_A attr_list = get_userattr_list(ldap_state->schema_ver); rc = ldapsam_search_suffix_by_name(ldap_state, pdb_get_username(newpwd), &result, attr_list ); free_attr_list( attr_list ); - if (rc != LDAP_SUCCESS) + if (rc != LDAP_SUCCESS) { return NT_STATUS_UNSUCCESSFUL; + } pdb_set_backend_private_data(newpwd, result, private_data_free_fn, my_methods, PDB_CHANGED); } @@ -1823,6 +1823,8 @@ static NTSTATUS ldapsam_update_sam_account(struct pdb_methods *my_methods, SAM_A entry = ldap_first_entry(ldap_state->smbldap_state->ldap_struct, result); dn = ldap_get_dn(ldap_state->smbldap_state->ldap_struct, entry); + DEBUG(4, ("user %s to be modified has dn: %s\n", pdb_get_username(newpwd), dn)); + if (!init_ldap_from_sam(ldap_state, entry, &mods, newpwd, element_is_changed)) { DEBUG(0, ("ldapsam_update_sam_account: init_ldap_from_sam failed!\n")); @@ -1926,7 +1928,7 @@ static NTSTATUS ldapsam_add_sam_account(struct pdb_methods *my_methods, SAM_ACCO } } - /* does the entry already exist but without a samba rttibutes? + /* does the entry already exist but without a samba attributes? we need to return the samba attributes here */ escape_user = escape_ldap_string_alloc( username ); |