mirror of
https://github.com/samba-team/samba.git
synced 2025-11-30 20:23:49 +03:00
Actually enforce the passdb API.
Thou shalt not reference SAM_ACCOUNT members directly - always use pdb_get/pdb_set. This is achived by making the whole of SAM_ACCOUNT have a .private member, where the real members live. This caught a pile of examples, and these have beeen fixed. The pdb_get..() functions are 'const' (have been for some time) and this required a few small changes to constify other functions. I've also added some debugs to the pdb get and set, they can be removed if requested. I've rewritten the copy_id2x_to_sam_pass() functions to use the new passdb interface, but I need the flags info to do it properly. The pdb_free_sam() funciton now blanks out the LM and NT hashes, and as such I have removed many extra 'samr_clear_sam_passwd(smbpass)' calls as a result. Finally, any and all testing is always appriciated - but the basics seem to work. Andrew Bartlett
This commit is contained in:
@@ -87,8 +87,8 @@ static int print_sam_info (SAM_ACCOUNT *sam_pwent, BOOL verbosity, BOOL smbpwdst
|
||||
gid = pdb_get_gid(sam_pwent);
|
||||
printf ("user ID/Group: %d/%d\n", uid, gid);
|
||||
}
|
||||
printf ("user RID/GRID: %u/%u\n", (unsigned int)sam_pwent->user_rid,
|
||||
(unsigned int)sam_pwent->group_rid);
|
||||
printf ("user RID/GRID: %u/%u\n", (unsigned int)pdb_get_user_rid(sam_pwent),
|
||||
(unsigned int)pdb_get_group_rid(sam_pwent));
|
||||
printf ("Full Name: %s\n", pdb_get_fullname(sam_pwent));
|
||||
printf ("Home Directory: %s\n", pdb_get_homedir(sam_pwent));
|
||||
printf ("HomeDir Drive: %s\n", pdb_get_dirdrive(sam_pwent));
|
||||
|
||||
Reference in New Issue
Block a user