summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/proto.h23
-rw-r--r--source3/include/rpc_samr.h42
-rw-r--r--source3/include/smb.h1
3 files changed, 58 insertions, 8 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 83848e45e7..11c9f19393 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1140,6 +1140,7 @@ BOOL pass_check(char *user,char *password, int pwlen, struct passwd *pwd,
/*The following definitions come from passdb/passdb.c */
BOOL initialize_password_db(void);
+struct smb_passwd *iterate_getsmbpwrid(uint32 user_rid);
struct smb_passwd *iterate_getsmbpwuid(uid_t smb_userid);
struct smb_passwd *iterate_getsmbpwnam(char *name);
void *startsmbpwent(BOOL update);
@@ -1148,6 +1149,7 @@ struct smb_passwd *getsmbpwent(void *vp);
BOOL add_smbpwd_entry(struct smb_passwd *newpwd);
BOOL mod_smbpwd_entry(struct smb_passwd* pwd, BOOL override);
struct smb_passwd *getsmbpwnam(char *name);
+struct smb_passwd *getsmbpwrid(uint32 user_rid);
struct smb_passwd *getsmbpwuid(uid_t smb_userid);
struct sam_passwd *iterate_getsam21pwnam(char *name);
struct sam_passwd *iterate_getsam21pwrid(uint32 rid);
@@ -1174,6 +1176,7 @@ void pdb_sethexpwd(char *p, char *pwd, uint16 acct_ctrl);
BOOL 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);
+uid_t pdb_user_rid_to_uid(uint32 user_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);
@@ -1610,12 +1613,22 @@ void make_samr_q_open_domain(SAMR_Q_OPEN_DOMAIN *q_u,
DOM_SID *sid);
void samr_io_q_open_domain(char *desc, SAMR_Q_OPEN_DOMAIN *q_u, prs_struct *ps, int depth);
void samr_io_r_open_domain(char *desc, SAMR_R_OPEN_DOMAIN *r_u, prs_struct *ps, int depth);
+void make_samr_q_unknown_2c(SAMR_Q_UNKNOWN_2C *q_u, POLICY_HND *user_pol);
+void samr_io_q_unknown_2c(char *desc, SAMR_Q_UNKNOWN_2C *q_u, prs_struct *ps, int depth);
+void make_samr_r_unknown_2c(SAMR_R_UNKNOWN_2C *q_u, uint32 status);
+void samr_io_r_unknown_2c(char *desc, SAMR_R_UNKNOWN_2C *r_u, prs_struct *ps, int depth);
void make_samr_q_unknown_3(SAMR_Q_UNKNOWN_3 *q_u,
POLICY_HND *user_pol, uint16 switch_value);
void samr_io_q_unknown_3(char *desc, SAMR_Q_UNKNOWN_3 *q_u, prs_struct *ps, int depth);
void make_samr_q_unknown_8(SAMR_Q_UNKNOWN_8 *q_u,
POLICY_HND *domain_pol, uint16 switch_value);
void samr_io_q_unknown_8(char *desc, SAMR_Q_UNKNOWN_8 *q_u, prs_struct *ps, int depth);
+void make_unk_info2(SAM_UNK_INFO_2 *u_2, char *domain, char *server);
+void sam_io_unk_info2(char *desc, SAM_UNK_INFO_2 *u_2, prs_struct *ps, int depth);
+void make_samr_r_unknown_8(SAMR_R_UNKNOWN_8 *r_u,
+ uint16 switch_value, SAM_UNK_CTR *ctr,
+ uint32 status);
+void samr_io_r_unknown_8(char *desc, SAMR_R_UNKNOWN_8 *r_u, prs_struct *ps, int depth);
void make_dom_sid3(DOM_SID3 *sid3, uint16 unk_0, uint16 unk_1, DOM_SID *sid);
void make_samr_r_unknown_3(SAMR_R_UNKNOWN_3 *r_u,
uint16 unknown_2, uint16 unknown_3,
@@ -1692,6 +1705,16 @@ void samr_io_r_query_usergroups(char *desc, SAMR_R_QUERY_USERGROUPS *r_u, prs_s
void make_samr_q_query_userinfo(SAMR_Q_QUERY_USERINFO *q_u,
POLICY_HND *hnd, uint16 switch_value);
void samr_io_q_query_userinfo(char *desc, SAMR_Q_QUERY_USERINFO *q_u, prs_struct *ps, int depth);
+void make_sam_user_info10(SAM_USER_INFO_10 *usr,
+ uint32 acb_info);
+void sam_io_user_info10(char *desc, SAM_USER_INFO_10 *usr, prs_struct *ps, int depth);
+void make_sam_user_info11(SAM_USER_INFO_11 *usr,
+ NTTIME *expiry,
+ char *mach_acct,
+ uint32 rid_user,
+ uint32 rid_group,
+ uint16 acct_ctrl);
+void sam_io_user_info11(char *desc, SAM_USER_INFO_11 *usr, prs_struct *ps, int depth);
void make_sam_user_info21(SAM_USER_INFO_21 *usr,
NTTIME *logon_time,
diff --git a/source3/include/rpc_samr.h b/source3/include/rpc_samr.h
index baae9a3bd9..2a22919642 100644
--- a/source3/include/rpc_samr.h
+++ b/source3/include/rpc_samr.h
@@ -89,6 +89,7 @@ SamrTestPrivateFunctionsUser
#define SAMR_QUERY_USERGROUPS 0x27
#define SAMR_UNKNOWN_12 0x12
#define SAMR_UNKNOWN_21 0x21
+#define SAMR_UNKNOWN_2C 0x2c
#define SAMR_UNKNOWN_32 0x32
#define SAMR_UNKNOWN_34 0x34
#define SAMR_CHGPASSWD_USER 0x37
@@ -210,7 +211,7 @@ typedef struct sam_user_info_11
/* SAM_USER_INFO_10 */
typedef struct sam_user_info_10
{
- uint32 rid_group;
+ uint32 acb_info;
} SAM_USER_INFO_10;
@@ -234,13 +235,39 @@ typedef struct r_samr_close_hnd_info
/****************************************************************************
+SAMR_Q_UNKNOWN_2C - a "set user info" occurs just after this
+*****************************************************************************/
+
+/* SAMR_Q_UNKNOWN_2C */
+typedef struct q_samr_unknown_2c_info
+{
+ POLICY_HND user_pol; /* policy handle */
+
+} SAMR_Q_UNKNOWN_2C;
+
+
+/****************************************************************************
+SAMR_R_UNKNOWN_2C - a "set user info" occurs just after this
+*****************************************************************************/
+
+/* SAMR_R_UNKNOWN_2C */
+typedef struct r_samr_unknown_2c_info
+{
+ uint32 unknown_0; /* 0x0016 0000 */
+ uint32 unknown_1; /* 0x0000 0000 */
+ uint32 status;
+
+} SAMR_R_UNKNOWN_2C;
+
+
+/****************************************************************************
SAMR_Q_UNKNOWN_3 - info level 4. returns SIDs.
*****************************************************************************/
/* SAMR_Q_UNKNOWN_3 - probably get domain info... */
typedef struct q_samr_unknown_3_info
{
- POLICY_HND user_pol; /* policy handle */
+ POLICY_HND user_pol; /* policy handle */
uint16 switch_value; /* 0x0000 0004 */
/* uint8 pad[2] */
@@ -317,7 +344,7 @@ SAMR_Q_UNKNOWN_8 - probably a query on domain group info.
/* SAMR_Q_UNKNOWN_8 - */
typedef struct q_samr_unknown_8_info
{
- POLICY_HND domain_pol; /* policy handle */
+ POLICY_HND domain_pol; /* policy handle */
uint16 switch_value; /* 0x0002 */
} SAMR_Q_UNKNOWN_8;
@@ -325,9 +352,8 @@ typedef struct q_samr_unknown_8_info
typedef struct sam_unkown_info_2_info
{
uint32 unknown_0; /* 0x0000 0000 */
- uint32 unknown_1; /* 0x0000 0000 */
- uint32 unknown_2; /* 0x8000 0000 */
- uint32 unknown_3; /* 0x0000 0000 */
+ uint32 unknown_1; /* 0x8000 0000 */
+ uint32 unknown_2; /* 0x0000 0000 */
uint32 ptr_0; /* pointer to unknown structure */
UNIHDR hdr_domain; /* domain name unicode header */
@@ -337,7 +363,7 @@ typedef struct sam_unkown_info_2_info
pointer is referring to
*/
- uint32 unknown_4; /* 0x0000 0099 */
+ uint32 unknown_4; /* 0x0000 0099 or 0x1000 0000 */
uint32 unknown_5; /* 0x0000 0000 */
uint32 unknown_6 ; /* 0x0000 0001 */
@@ -368,7 +394,7 @@ typedef struct sam_unknown_ctr_info
/* SAMR_R_UNKNOWN_8 - */
typedef struct r_samr_unknown_8_info
{
- uint32 ptr_1;
+ uint32 ptr_0;
uint16 switch_value; /* same as in query */
SAM_UNK_CTR *ctr;
diff --git a/source3/include/smb.h b/source3/include/smb.h
index 4cc5599f44..f755b81b92 100644
--- a/source3/include/smb.h
+++ b/source3/include/smb.h
@@ -667,6 +667,7 @@ struct passdb_ops {
*/
struct smb_passwd *(*getsmbpwnam)(char *);
struct smb_passwd *(*getsmbpwuid)(uid_t);
+ struct smb_passwd *(*getsmbpwrid)(uint32);
struct smb_passwd *(*getsmbpwent)(void *);
/*