summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1998-12-02 01:13:02 +0000
committerLuke Leighton <lkcl@samba.org>1998-12-02 01:13:02 +0000
commit51534a4b97f09fc0f98d00e7a2730dddde496dd8 (patch)
tree1ac57a51befb8b87d3c2add8ba6774fed3736fdb /source3/include
parentf7682385826a9ed2f463d794e0c91ba53ddd6a9e (diff)
downloadsamba-51534a4b97f09fc0f98d00e7a2730dddde496dd8.tar.gz
samba-51534a4b97f09fc0f98d00e7a2730dddde496dd8.tar.bz2
samba-51534a4b97f09fc0f98d00e7a2730dddde496dd8.zip
adding group member code, made a start. found that the group members'
rid is needed not the name (see DOMAIN_GRP_MEMBER) decided to go home. (This used to be commit 9337049dfc98becfa74522d418dae64a97c7a304)
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/proto.h20
-rw-r--r--source3/include/rpc_misc.h12
-rw-r--r--source3/include/rpc_samr.h55
3 files changed, 61 insertions, 26 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 1509253c04..ea260f07cd 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -2045,6 +2045,26 @@ void make_samr_r_query_dispinfo(SAMR_R_QUERY_DISPINFO *r_u,
void samr_io_r_query_dispinfo(char *desc, SAMR_R_QUERY_DISPINFO *r_u, prs_struct *ps, int depth);
void make_samr_q_open_group(SAMR_Q_OPEN_GROUP *q_c,
POLICY_HND *hnd, uint32 unk, uint32 rid);
+void samr_io_q_open_group(char *desc, SAMR_Q_OPEN_GROUP *q_u, prs_struct *ps, int depth);
+void samr_io_r_open_group(char *desc, SAMR_R_OPEN_GROUP *r_u, prs_struct *ps, int depth);
+void make_samr_group_info1(GROUP_INFO1 *gr1,
+ char *acct_name, char *acct_desc);
+void samr_io_group_info1(char *desc, GROUP_INFO1 *gr1, prs_struct *ps, int depth);
+void make_samr_group_info4(GROUP_INFO4 *gr4, char *acct_desc);
+void samr_io_group_info4(char *desc, GROUP_INFO4 *gr4, prs_struct *ps, int depth);
+void samr_group_info_ctr(char *desc, GROUP_INFO_CTR *ctr, prs_struct *ps, int depth);
+void make_samr_q_query_groupinfo(SAMR_Q_QUERY_GROUPINFO *q_e,
+ POLICY_HND *pol,
+ uint16 switch_level);
+void samr_io_q_query_groupinfo(char *desc, SAMR_Q_QUERY_GROUPINFO *q_e, prs_struct *ps, int depth);
+void make_samr_r_query_groupinfo(SAMR_R_QUERY_GROUPINFO *r_u, GROUP_INFO_CTR *ctr,
+ uint32 status);
+void samr_io_r_query_groupinfo(char *desc, SAMR_R_QUERY_GROUPINFO *r_u, prs_struct *ps, int depth);
+void make_samr_q_query_groupmem(SAMR_Q_QUERY_GROUPMEM *q_c, POLICY_HND *hnd);
+void samr_io_q_query_groupmem(char *desc, SAMR_Q_QUERY_GROUPMEM *q_u, prs_struct *ps, int depth);
+void make_samr_r_query_groupmem(SAMR_R_QUERY_GROUPMEM *r_u,
+ uint32 num_entries, uint32 *rid, uint32 *attr, uint32 status);
+void samr_io_r_query_groupmem(char *desc, SAMR_R_QUERY_GROUPMEM *r_u, prs_struct *ps, int depth);
void make_samr_q_enum_dom_groups(SAMR_Q_ENUM_DOM_GROUPS *q_e, POLICY_HND *pol,
uint16 switch_level, uint32 start_idx, uint32 size);
void samr_io_q_enum_dom_groups(char *desc, SAMR_Q_ENUM_DOM_GROUPS *q_e, prs_struct *ps, int depth);
diff --git a/source3/include/rpc_misc.h b/source3/include/rpc_misc.h
index e41c61f882..ff0d2cc49d 100644
--- a/source3/include/rpc_misc.h
+++ b/source3/include/rpc_misc.h
@@ -199,6 +199,7 @@ typedef struct domrid3_info
uint32 type1; /* value is 0x1 */
uint32 ptr_type; /* undocumented pointer */
uint32 type2; /* value is 0x1 */
+ uint32 unk; /* value is 0x2 */
} DOM_RID3;
@@ -211,17 +212,6 @@ typedef struct domrid4_info
} DOM_RID4;
-/* DOM_RID5 - rid, type & attributes */
-typedef struct domrid5_info
-{
- uint32 ptr_unk; /* pointer to unk */
- uint32 unk; /* value is 0x1 */
- uint32 rid; /* RID */
- uint8 type; /* SID_NAME_USE_ENUM */
- uint16 attr;
-
-} DOM_RID5;
-
/* DOM_CLNT_SRV - client / server names */
typedef struct clnt_srv_info
{
diff --git a/source3/include/rpc_samr.h b/source3/include/rpc_samr.h
index f8e95937a1..4c42c18921 100644
--- a/source3/include/rpc_samr.h
+++ b/source3/include/rpc_samr.h
@@ -749,19 +749,26 @@ typedef struct samr_group_info4
} GROUP_INFO4;
-/* SAMR_R_QUERY_GROUPINFO - SAM Group Info */
-typedef struct r_samr_query_groupinfo_info
+/* GROUP_INFO_CTR */
+typedef struct group_info_ctr
{
- uint32 ptr;
- uint16 switch_value; /* 0x0001 seen */
- /* uint8[2] padding */
+ uint16 switch_value;
union
{
+ GROUP_INFO4 info4;
GROUP_INFO1 info1;
} group;
+} GROUP_INFO_CTR;
+
+/* SAMR_R_QUERY_GROUPINFO - SAM Group Info */
+typedef struct r_samr_query_groupinfo_info
+{
+ uint32 ptr;
+ GROUP_INFO_CTR *ctr;
+
uint32 status;
} SAMR_R_QUERY_GROUPINFO;
@@ -771,14 +778,7 @@ typedef struct r_samr_query_groupinfo_info
typedef struct q_samr_set_group_info
{
POLICY_HND pol; /* policy handle */
- uint16 switch_value1; /* 0x0004 seen */
- uint16 switch_value2; /* 0x0004 seen */
-
- union
- {
- GROUP_INFO4 info4;
-
- } group;
+ GROUP_INFO_CTR *ctr;
} SAMR_Q_SET_GROUPINFO;
@@ -1005,8 +1005,6 @@ typedef struct r_samr_lookup_names_info
uint32 num_entries2;
DOM_RID3 dom_rid[MAX_LOOKUP_SIDS]; /* domain RIDs being looked up */
- uint32 num_entries3;
-
uint32 status; /* return code */
} SAMR_R_LOOKUP_NAMES;
@@ -1106,6 +1104,33 @@ typedef struct r_samr_unknown_32_info
} SAMR_R_UNKNOWN_32;
+/* SAMR_Q_QUERY_GROUPMEM - query group members */
+typedef struct q_samr_query_groupmem_info
+{
+ POLICY_HND group_pol; /* policy handle */
+
+} SAMR_Q_QUERY_GROUPMEM;
+
+
+/* SAMR_R_QUERY_GROUPMEM - query group members */
+typedef struct r_samr_query_groupmem_info
+{
+ uint32 ptr;
+ uint32 num_entries;
+
+ uint32 ptr_rids;
+ uint32 ptr_attrs;
+
+ uint32 num_rids;
+ uint32 *rid;
+
+ uint32 num_attrs;
+ uint32 *attr;
+
+ uint32 status;
+
+} SAMR_R_QUERY_GROUPMEM;
+
/* SAMR_Q_ADD_GROUPMEM - probably an add group member */
typedef struct q_samr_add_group_mem_info