diff options
author | Luke Leighton <lkcl@samba.org> | 1998-10-21 21:11:16 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 1998-10-21 21:11:16 +0000 |
commit | 21e107fd42eb953affac28239588458c6c0ee323 (patch) | |
tree | c00689d10ac2147dae1fe035585901e8c46ee0e7 /source3/include | |
parent | 8c307cee7a687da965c9b03ff19dd9de2eaabe64 (diff) | |
download | samba-21e107fd42eb953affac28239588458c6c0ee323.tar.gz samba-21e107fd42eb953affac28239588458c6c0ee323.tar.bz2 samba-21e107fd42eb953affac28239588458c6c0ee323.zip |
the next dialog: user-groups. it's not very sensible what appears, but hey:
it appears!
(This used to be commit 399035098f212e976cc0000a215e0705ebe78c05)
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/proto.h | 23 | ||||
-rw-r--r-- | source3/include/rpc_samr.h | 42 | ||||
-rw-r--r-- | source3/include/smb.h | 1 |
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 *); /* |