summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/proto.h15
-rw-r--r--source3/include/smb.h28
2 files changed, 36 insertions, 7 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 8207aa8adc..177a45c9c0 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1568,13 +1568,16 @@ BOOL mod_smbpwd_entry(struct smb_passwd* pwd, BOOL override);
struct smb_passwd *getsmbpwnam(char *name);
struct smb_passwd *getsmbpwuid(uid_t smb_userid);
struct sam_passwd *iterate_getsam21pwnam(char *name);
-struct sam_passwd *iterate_getsam21pwuid(uint32 uid);
+struct sam_passwd *iterate_getsam21pwrid(uint32 rid);
+struct sam_passwd *iterate_getsam21pwuid(uid_t uid);
+struct sam_disp_info *getsamdisprid(uint32 rid);
struct sam_disp_info *getsamdispent(void *vp);
struct sam_passwd *getsam21pwent(void *vp);
BOOL add_sam21pwd_entry(struct sam_passwd *newpwd);
BOOL mod_sam21pwd_entry(struct sam_passwd* pwd, BOOL override);
struct sam_passwd *getsam21pwnam(char *name);
-struct sam_passwd *getsam21pwuid(uint32 uid);
+struct sam_passwd *getsam21pwrid(uint32 rid);
+struct sam_passwd *getsam21pwuid(uid_t uid);
void pdb_init_dispinfo(struct sam_disp_info *user);
void pdb_init_smb(struct smb_passwd *user);
void pdb_init_sam(struct sam_passwd *user);
@@ -1588,10 +1591,10 @@ uint16 pdb_decode_acct_ctrl(char *p);
int pdb_gethexpwd(char *p, char *pwd);
BOOL pdb_name_to_rid(char *user_name, uint32 *u_rid, uint32 *g_rid);
BOOL pdb_generate_machine_sid(void);
-uint32 pdb_user_rid_to_uid(uint32 u_rid);
-uint32 pdb_group_rid_to_gid(uint32 u_gid);
-uint32 pdb_uid_to_user_rid(uint32 uid);
-uint32 pdb_gid_to_group_rid(uint32 gid);
+uid_t pdb_user_rid_to_uid(uint32 u_rid);
+gid_t pdb_group_rid_to_gid(uint32 g_rid);
+uint32 pdb_uid_to_user_rid(uid_t uid);
+uint32 pdb_gid_to_group_rid(gid_t gid);
BOOL pdb_rid_is_user(uint32 rid);
/*The following definitions come from password.c */
diff --git a/source3/include/smb.h b/source3/include/smb.h
index fff44f179d..8687f618e4 100644
--- a/source3/include/smb.h
+++ b/source3/include/smb.h
@@ -637,6 +637,17 @@ struct shmem_ops {
/*
* Each implementation of the password database code needs
* to support the following operations.
+ *
+ * either the get/mod/add-smbXXX or the get/mod/add-sam21XXX functions
+ * are optional, but not both. conversion routines will be called
+ * if only one of each is supported. the preference is to provide
+ * full getsam21pwXXX functionality.
+ *
+ * e.g: provide a getsam21pwnam() function but set getsmbpwnam() to NULL:
+ * passdb.c will automatically call getsam21pwnam() and then call the
+ * sam21-to-smb conversion routine if the passdb.c::getsmbpwnam() function
+ * is called.
+ *
*/
struct passdb_ops {
@@ -647,12 +658,14 @@ struct passdb_ops {
void (*endsmbpwent)(void *);
unsigned long (*getsmbpwpos)(void *);
BOOL (*setsmbpwpos)(void *, unsigned long);
+
/*
* smb password database query functions.
*/
struct smb_passwd *(*getsmbpwnam)(char *);
struct smb_passwd *(*getsmbpwuid)(uid_t);
struct smb_passwd *(*getsmbpwent)(void *);
+
/*
* smb password database modification functions.
*/
@@ -664,11 +677,24 @@ struct passdb_ops {
*/
struct sam_passwd *(*getsam21pwent)(void *);
+ /*
+ * sam password database query functions.
+ */
struct sam_passwd *(*getsam21pwnam)(char *);
- struct sam_passwd *(*getsam21pwuid)(uint32);
+ struct sam_passwd *(*getsam21pwuid)(uid_t);
+ struct sam_passwd *(*getsam21pwrid)(uint32);
+ /*
+ * sam password database modification functions.
+ */
BOOL (*add_sam21pwd_entry)(struct sam_passwd *);
BOOL (*mod_sam21pwd_entry)(struct sam_passwd *, BOOL);
+
+ /*
+ * sam query display info functions.
+ */
+ struct sam_disp_info *(*getsamdisprid)(uint32);
+ struct sam_disp_info *(*getsamdispent)(void *);
};
/* this is used for smbstatus */