From 04e382fb166a64de193dc3c7b21187d8382eaeea Mon Sep 17 00:00:00 2001 From: Luke Leighton Date: Tue, 1 Dec 1998 19:10:44 +0000 Subject: rpc_samr.h parse_samr.c srv_samr.c : samr_query_aliasmembers (cool!) util_pwdb.c sids.c nmbd.c server.c smbpasswd.c swat.c : pwdb_initialise(BOOL is_server) now creates / reads DOMAIN_NAME.SID if is_server is True, and does LsaQueryInfoPolicy(levels 3 and 5) to obtain member and pdc sids. (This used to be commit 3e1eb4f26b67e484b05e1dde94fd4e4dae982631) --- source3/include/proto.h | 10 +++++++--- source3/include/rpc_samr.h | 23 +++++++++++++++++------ 2 files changed, 24 insertions(+), 9 deletions(-) (limited to 'source3/include') diff --git a/source3/include/proto.h b/source3/include/proto.h index b362940a4c..4360d6b8ee 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -261,6 +261,7 @@ char *rep_inet_ntoa(struct in_addr ip); void get_sam_domain_name(void); BOOL get_member_domain_sid(void); +BOOL get_domain_sids(DOM_SID *sid3, DOM_SID *sid5); void generate_wellknown_sids(void); BOOL generate_sam_sid(char *domain_name); BOOL map_domain_name_to_sid(DOM_SID *sid, char **nt_domain); @@ -457,7 +458,7 @@ void pwdb_set_must_change_time(char *p, int max_len, time_t t); void pwdb_set_last_set_time(char *p, int max_len, time_t t); void pwdb_sethexpwd(char *p, const char *pwd, uint16 acct_ctrl); BOOL pwdb_gethexpwd(const char *p, char *pwd); -BOOL pwdb_initialise(void); +BOOL pwdb_initialise(BOOL server); /*The following definitions come from lib/util_sid.c */ @@ -2112,8 +2113,11 @@ void make_samr_q_add_aliasmem(SAMR_Q_ADD_ALIASMEM *q_u, POLICY_HND *hnd, DOM_SID *sid); void samr_io_q_add_aliasmem(char *desc, SAMR_Q_ADD_ALIASMEM *q_u, prs_struct *ps, int depth); void samr_io_r_add_aliasmem(char *desc, SAMR_R_ADD_ALIASMEM *r_u, prs_struct *ps, int depth); -void make_samr_q_unknown_21(SAMR_Q_UNKNOWN_21 *q_c, - POLICY_HND *hnd, uint16 unk_1, uint16 unk_2); +void make_samr_q_query_aliasmem(SAMR_Q_QUERY_ALIASMEM *q_c, POLICY_HND *hnd); +void samr_io_q_query_aliasmem(char *desc, SAMR_Q_QUERY_ALIASMEM *q_u, prs_struct *ps, int depth); +void make_samr_r_query_aliasmem(SAMR_R_QUERY_ALIASMEM *r_u, + uint32 num_sids, DOM_SID *sid, uint32 status); +void samr_io_r_query_aliasmem(char *desc, SAMR_R_QUERY_ALIASMEM *r_u, prs_struct *ps, int depth); void samr_io_q_lookup_names(char *desc, SAMR_Q_LOOKUP_NAMES *q_u, prs_struct *ps, int depth); void make_samr_r_lookup_names(SAMR_R_LOOKUP_NAMES *r_u, uint32 num_rids, uint32 *rid, uint8 *type, uint32 status); diff --git a/source3/include/rpc_samr.h b/source3/include/rpc_samr.h index 6a1dc8d860..f34fe3ed77 100644 --- a/source3/include/rpc_samr.h +++ b/source3/include/rpc_samr.h @@ -1145,15 +1145,26 @@ typedef struct r_samr_open_group_info } SAMR_R_OPEN_GROUP; -/* SAMR_Q_UNKNOWN_21 - probably an open group in domain */ -typedef struct q_samr_unknown_21_info +/* SAMR_Q_QUERY_ALIASMEM - query alias members */ +typedef struct q_samr_query_aliasmem_info { - POLICY_HND group_pol; /* policy handle */ + POLICY_HND alias_pol; /* policy handle */ + +} SAMR_Q_QUERY_ALIASMEM; + - uint16 unknown_1; /* 16 bit unknown - 0x0477 */ - uint16 unknown_2; /* 16 bit unknown - 0x0000 */ +/* SAMR_R_QUERY_ALIASMEM - query alias members */ +typedef struct r_samr_query_aliasmem_info +{ + uint32 num_sids; + uint32 ptr; + uint32 num_sids1; + + DOM_SID *sid; + + uint32 status; -} SAMR_Q_UNKNOWN_21; +} SAMR_R_QUERY_ALIASMEM; /* SAMR_Q_UNK_ALIASMEM - don't know! */ -- cgit