diff options
Diffstat (limited to 'source3/passdb/passdb.c')
-rw-r--r-- | source3/passdb/passdb.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c index a4bb657e80..0cd2f6ef2e 100644 --- a/source3/passdb/passdb.c +++ b/source3/passdb/passdb.c @@ -85,6 +85,15 @@ BOOL initialize_password_db(void) */ /************************************************************************ + Utility function to search smb passwd by rid. +*************************************************************************/ + +struct smb_passwd *iterate_getsmbpwrid(uint32 user_rid) +{ + return iterate_getsmbpwuid(pdb_user_rid_to_uid(user_rid)); +} + +/************************************************************************ Utility function to search smb passwd by uid. use this if your database does not have search facilities. *************************************************************************/ @@ -223,6 +232,15 @@ struct smb_passwd *getsmbpwnam(char *name) } /************************************************************************ + Routine to search smb passwd by user rid. +*************************************************************************/ + +struct smb_passwd *getsmbpwrid(uint32 user_rid) +{ + return pdb_ops->getsmbpwrid(user_rid); +} + +/************************************************************************ Routine to search smb passwd by uid. *************************************************************************/ @@ -966,6 +984,15 @@ Error was %s\n", sid_file, strerror(errno) )); converts UNIX uid to an NT User RID. ********************************************************************/ +uid_t pdb_user_rid_to_uid(uint32 user_rid) +{ + return (uid_t)(((user_rid & (~USER_RID_TYPE))- 1000)/RID_MULTIPLIER); +} + +/******************************************************************* + converts UNIX uid to an NT User RID. + ********************************************************************/ + uint32 pdb_uid_to_user_rid(uid_t uid) { return (((((uint32)uid)*RID_MULTIPLIER) + 1000) | USER_RID_TYPE); |