The branch, v3-2-test has been updated via 680dbd3ef6b1e42db2fbf5b11308b02d961a7688 (commit) via 6a3b06291bf9c11c15e38d73bbdf6c2cbd12e4ab (commit) via e80852426972fbf9996561aabdde7ed7b2c78b39 (commit) from 07faaadd5ff2a94fc0db15f68836ffbdb2763461 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test - Log ----------------------------------------------------------------- commit 680dbd3ef6b1e42db2fbf5b11308b02d961a7688 Author: Günther Deschner <[EMAIL PROTECTED]> Date: Thu Feb 7 14:01:58 2008 +0100 Remove unused marshalling for SAMR_QUERY_GROUPINFO. Guenther commit 6a3b06291bf9c11c15e38d73bbdf6c2cbd12e4ab Author: Günther Deschner <[EMAIL PROTECTED]> Date: Thu Feb 7 13:47:13 2008 +0100 Use rpccli_samr_QueryGroupInfo() in rpcclient. Guenther commit e80852426972fbf9996561aabdde7ed7b2c78b39 Author: Günther Deschner <[EMAIL PROTECTED]> Date: Thu Feb 7 13:58:53 2008 +0100 Use pidl for _samr_QueryGroupInfo(). Guenther ----------------------------------------------------------------------- Summary of changes: source/include/rpc_samr.h | 87 ---------- source/rpc_client/cli_samr.c | 36 ---- source/rpc_parse/parse_samr.c | 354 ++++----------------------------------- source/rpc_server/srv_samr.c | 23 +--- source/rpc_server/srv_samr_nt.c | 91 ++++++----- source/rpcclient/cmd_samr.c | 76 ++++----- 6 files changed, 111 insertions(+), 556 deletions(-) Changeset truncated at 500 lines: diff --git a/source/include/rpc_samr.h b/source/include/rpc_samr.h index 2b23339..37a457e 100644 --- a/source/include/rpc_samr.h +++ b/source/include/rpc_samr.h @@ -795,93 +795,6 @@ typedef struct r_samr_get_dispenum_index } SAMR_R_GET_DISPENUM_INDEX; -/* SAMR_Q_QUERY_GROUPINFO - SAM Group Info */ -typedef struct q_samr_query_group_info -{ - POLICY_HND pol; /* policy handle */ - - uint16 switch_level; /* 0x0001 seen */ - -} SAMR_Q_QUERY_GROUPINFO; - -typedef struct samr_group_info1 -{ - UNIHDR hdr_acct_name; - - uint32 group_attr; /* 0x0000 0003 - group attribute */ - uint32 num_members; /* 0x0000 0001 - number of group members? */ - - UNIHDR hdr_acct_desc; - - UNISTR2 uni_acct_name; - UNISTR2 uni_acct_desc; - -} GROUP_INFO1; - -typedef struct samr_group_info2 -{ - uint16 level; - UNIHDR hdr_acct_name; - UNISTR2 uni_acct_name; - -} GROUP_INFO2; - -typedef struct samr_group_info3 -{ - uint32 group_attr; /* 0x0000 0003 - group attribute */ - -} GROUP_INFO3; - -typedef struct samr_group_info4 -{ - uint16 level; - UNIHDR hdr_acct_desc; - UNISTR2 uni_acct_desc; - -} GROUP_INFO4; - -typedef struct samr_group_info5 -{ - UNIHDR hdr_acct_name; - - uint32 group_attr; /* 0x0000 0003 - group attribute */ - uint32 num_members; /* 0x0000 0001 - number of group members? */ - - UNIHDR hdr_acct_desc; - - UNISTR2 uni_acct_name; - UNISTR2 uni_acct_desc; - -} GROUP_INFO5; - - -/* GROUP_INFO_CTR */ -typedef struct group_info_ctr -{ - uint16 switch_value1; - - union - { - GROUP_INFO1 info1; - GROUP_INFO2 info2; - GROUP_INFO3 info3; - GROUP_INFO4 info4; - GROUP_INFO5 info5; - } group; - -} GROUP_INFO_CTR; - -/* SAMR_R_QUERY_GROUPINFO - SAM Group Info */ -typedef struct r_samr_query_groupinfo_info -{ - uint32 ptr; - GROUP_INFO_CTR *ctr; - - NTSTATUS status; - -} SAMR_R_QUERY_GROUPINFO; - - /********************************************************/ /********************************************************/ diff --git a/source/rpc_client/cli_samr.c b/source/rpc_client/cli_samr.c index 19c59f2..eb37d6e 100644 --- a/source/rpc_client/cli_samr.c +++ b/source/rpc_client/cli_samr.c @@ -64,42 +64,6 @@ NTSTATUS rpccli_samr_query_userinfo(struct rpc_pipe_client *cli, return result; } -/* Query group info */ - -NTSTATUS rpccli_samr_query_groupinfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - POLICY_HND *group_pol, uint32 info_level, - GROUP_INFO_CTR **ctr) -{ - prs_struct qbuf, rbuf; - SAMR_Q_QUERY_GROUPINFO q; - SAMR_R_QUERY_GROUPINFO r; - NTSTATUS result = NT_STATUS_UNSUCCESSFUL; - - DEBUG(10,("cli_samr_query_groupinfo\n")); - - ZERO_STRUCT(q); - ZERO_STRUCT(r); - - /* Marshall data and send request */ - - init_samr_q_query_groupinfo(&q, group_pol, info_level); - - CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_QUERY_GROUPINFO, - q, r, - qbuf, rbuf, - samr_io_q_query_groupinfo, - samr_io_r_query_groupinfo, - NT_STATUS_UNSUCCESSFUL); - - *ctr = r.ctr; - - /* Return output parameters */ - - result = r.status; - - return result; -} - /* Query user groups */ NTSTATUS rpccli_samr_query_usergroups(struct rpc_pipe_client *cli, diff --git a/source/rpc_parse/parse_samr.c b/source/rpc_parse/parse_samr.c index 436e284..329b754 100644 --- a/source/rpc_parse/parse_samr.c +++ b/source/rpc_parse/parse_samr.c @@ -1259,367 +1259,73 @@ bool samr_io_r_query_dispinfo(const char *desc, SAMR_R_QUERY_DISPINFO * r_u, } /******************************************************************* -inits a GROUP_INFO1 structure. + inits a samr_GroupInfoAll structure. ********************************************************************/ -void init_samr_group_info1(GROUP_INFO1 * gr1, - char *acct_name, char *acct_desc, - uint32 num_members) +void init_samr_group_info1(struct samr_GroupInfoAll *r, + const char *name, + uint32_t attributes, + uint32_t num_members, + const char *description) { DEBUG(5, ("init_samr_group_info1\n")); - gr1->group_attr = (SE_GROUP_MANDATORY|SE_GROUP_ENABLED_BY_DEFAULT); /* why not | SE_GROUP_ENABLED ? */ - gr1->num_members = num_members; - - init_unistr2(&gr1->uni_acct_name, acct_name, UNI_FLAGS_NONE); - init_uni_hdr(&gr1->hdr_acct_name, &gr1->uni_acct_name); - init_unistr2(&gr1->uni_acct_desc, acct_desc, UNI_FLAGS_NONE); - init_uni_hdr(&gr1->hdr_acct_desc, &gr1->uni_acct_desc); -} - -/******************************************************************* -reads or writes a structure. -********************************************************************/ - -bool samr_io_group_info1(const char *desc, GROUP_INFO1 * gr1, - prs_struct *ps, int depth) -{ - uint16 dummy = 1; - - if (gr1 == NULL) - return False; - - prs_debug(ps, depth, desc, "samr_io_group_info1"); - depth++; - - if(!prs_uint16("level", ps, depth, &dummy)) - return False; - - if(!prs_align(ps)) - return False; - - if(!smb_io_unihdr("hdr_acct_name", &gr1->hdr_acct_name, ps, depth)) - return False; - - if(!prs_uint32("group_attr", ps, depth, &gr1->group_attr)) - return False; - if(!prs_uint32("num_members", ps, depth, &gr1->num_members)) - return False; - - if(!smb_io_unihdr("hdr_acct_desc", &gr1->hdr_acct_desc, ps, depth)) - return False; - - if(!smb_io_unistr2("uni_acct_name", &gr1->uni_acct_name, - gr1->hdr_acct_name.buffer, ps, depth)) - return False; - - if(!smb_io_unistr2("uni_acct_desc", &gr1->uni_acct_desc, - gr1->hdr_acct_desc.buffer, ps, depth)) - return False; - - return True; + init_lsa_String(&r->name, name); + r->attributes = attributes; + r->num_members = num_members; + init_lsa_String(&r->description, description); } /******************************************************************* -inits a GROUP_INFO2 structure. + inits a lsa_String structure ********************************************************************/ -void init_samr_group_info2(GROUP_INFO2 * gr2, const char *acct_name) +void init_samr_group_info2(struct lsa_String *r, const char *group_name) { DEBUG(5, ("init_samr_group_info2\n")); - gr2->level = 2; - init_unistr2(&gr2->uni_acct_name, acct_name, UNI_FLAGS_NONE); - init_uni_hdr(&gr2->hdr_acct_name, &gr2->uni_acct_name); -} - -/******************************************************************* -reads or writes a structure. -********************************************************************/ - -bool samr_io_group_info2(const char *desc, GROUP_INFO2 *gr2, prs_struct *ps, int depth) -{ - if (gr2 == NULL) - return False; - - prs_debug(ps, depth, desc, "samr_io_group_info2"); - depth++; - - if(!prs_uint16("hdr_level", ps, depth, &gr2->level)) - return False; - - if(!smb_io_unihdr("hdr_acct_name", &gr2->hdr_acct_name, ps, depth)) - return False; - if(!smb_io_unistr2("uni_acct_name", &gr2->uni_acct_name, - gr2->hdr_acct_name.buffer, ps, depth)) - return False; - - return True; + init_lsa_String(r, group_name); } /******************************************************************* -inits a GROUP_INFO3 structure. + inits a samr_GroupInfoAttributes structure. ********************************************************************/ -void init_samr_group_info3(GROUP_INFO3 *gr3) +void init_samr_group_info3(struct samr_GroupInfoAttributes *r, + uint32_t attributes) { DEBUG(5, ("init_samr_group_info3\n")); - gr3->group_attr = (SE_GROUP_MANDATORY|SE_GROUP_ENABLED_BY_DEFAULT); /* why not | SE_GROUP_ENABLED ? */ + r->attributes = attributes; } /******************************************************************* -reads or writes a structure. + inits a lsa_String structure ********************************************************************/ -bool samr_io_group_info3(const char *desc, GROUP_INFO3 *gr3, prs_struct *ps, int depth) -{ - if (gr3 == NULL) - return False; - - prs_debug(ps, depth, desc, "samr_io_group_info3"); - depth++; - - if(!prs_align(ps)) - return False; - - if(!prs_uint32("group_attr", ps, depth, &gr3->group_attr)) - return False; - - return True; -} - -/******************************************************************* -inits a GROUP_INFO4 structure. -********************************************************************/ - -void init_samr_group_info4(GROUP_INFO4 * gr4, const char *acct_desc) +void init_samr_group_info4(struct lsa_String *r, const char *description) { DEBUG(5, ("init_samr_group_info4\n")); - gr4->level = 4; - init_unistr2(&gr4->uni_acct_desc, acct_desc, UNI_FLAGS_NONE); - init_uni_hdr(&gr4->hdr_acct_desc, &gr4->uni_acct_desc); -} - -/******************************************************************* -reads or writes a structure. -********************************************************************/ - -bool samr_io_group_info4(const char *desc, GROUP_INFO4 * gr4, - prs_struct *ps, int depth) -{ - if (gr4 == NULL) - return False; - - prs_debug(ps, depth, desc, "samr_io_group_info4"); - depth++; - - if(!prs_uint16("hdr_level", ps, depth, &gr4->level)) - return False; - if(!smb_io_unihdr("hdr_acct_desc", &gr4->hdr_acct_desc, ps, depth)) - return False; - if(!smb_io_unistr2("uni_acct_desc", &gr4->uni_acct_desc, - gr4->hdr_acct_desc.buffer, ps, depth)) - return False; - - return True; + init_lsa_String(r, description); } /******************************************************************* -inits a GROUP_INFO5 structure. + inits a samr_GroupInfoAll structure. ********************************************************************/ -void init_samr_group_info5(GROUP_INFO5 * gr5, - char *acct_name, char *acct_desc, - uint32 num_members) +void init_samr_group_info5(struct samr_GroupInfoAll *r, + const char *name, + uint32_t attributes, + uint32_t num_members, + const char *description) { DEBUG(5, ("init_samr_group_info5\n")); - gr5->group_attr = (SE_GROUP_MANDATORY|SE_GROUP_ENABLED_BY_DEFAULT); /* why not | SE_GROUP_ENABLED ? */ - gr5->num_members = num_members; - - init_unistr2(&gr5->uni_acct_name, acct_name, UNI_FLAGS_NONE); - init_uni_hdr(&gr5->hdr_acct_name, &gr5->uni_acct_name); - init_unistr2(&gr5->uni_acct_desc, acct_desc, UNI_FLAGS_NONE); - init_uni_hdr(&gr5->hdr_acct_desc, &gr5->uni_acct_desc); -} - -/******************************************************************* -reads or writes a structure. -********************************************************************/ - -bool samr_io_group_info5(const char *desc, GROUP_INFO5 * gr5, - prs_struct *ps, int depth) -{ - uint16 dummy = 1; - - if (gr5 == NULL) - return False; - - prs_debug(ps, depth, desc, "samr_io_group_info5"); - depth++; - - if(!prs_uint16("level", ps, depth, &dummy)) - return False; - - if(!prs_align(ps)) - return False; - - if(!smb_io_unihdr("hdr_acct_name", &gr5->hdr_acct_name, ps, depth)) - return False; - - if(!prs_uint32("group_attr", ps, depth, &gr5->group_attr)) - return False; - if(!prs_uint32("num_members", ps, depth, &gr5->num_members)) - return False; - - if(!smb_io_unihdr("hdr_acct_desc", &gr5->hdr_acct_desc, ps, depth)) - return False; - - if(!smb_io_unistr2("uni_acct_name", &gr5->uni_acct_name, - gr5->hdr_acct_name.buffer, ps, depth)) - return False; - - if(!smb_io_unistr2("uni_acct_desc", &gr5->uni_acct_desc, - gr5->hdr_acct_desc.buffer, ps, depth)) - return False; - - return True; -} - - -/******************************************************************* -reads or writes a structure. -********************************************************************/ - -static bool samr_group_info_ctr(const char *desc, GROUP_INFO_CTR **ctr, - prs_struct *ps, int depth) -{ - if (UNMARSHALLING(ps)) - *ctr = PRS_ALLOC_MEM(ps,GROUP_INFO_CTR,1); - - if (*ctr == NULL) - return False; - - prs_debug(ps, depth, desc, "samr_group_info_ctr"); - depth++; - - if(!prs_uint16("switch_value1", ps, depth, &(*ctr)->switch_value1)) - return False; - - switch ((*ctr)->switch_value1) { - case 1: - if(!samr_io_group_info1("group_info1", &(*ctr)->group.info1, ps, depth)) - return False; - break; - case 2: - if(!samr_io_group_info2("group_info2", &(*ctr)->group.info2, ps, depth)) - return False; - break; - case 3: - if(!samr_io_group_info3("group_info3", &(*ctr)->group.info3, ps, depth)) - return False; - break; - case 4: - if(!samr_io_group_info4("group_info4", &(*ctr)->group.info4, ps, depth)) - return False; - break; - case 5: - if(!samr_io_group_info5("group_info5", &(*ctr)->group.info5, ps, depth)) - return False; - break; - default: - DEBUG(0,("samr_group_info_ctr: unsupported switch level\n")); - break; - } - - return True; -} - -/******************************************************************* -inits a SAMR_Q_QUERY_GROUPINFO structure. -********************************************************************/ - -void init_samr_q_query_groupinfo(SAMR_Q_QUERY_GROUPINFO * q_e, - POLICY_HND *pol, uint16 switch_level) -{ - DEBUG(5, ("init_samr_q_query_groupinfo\n")); - - q_e->pol = *pol; - - q_e->switch_level = switch_level; -} - -/******************************************************************* -reads or writes a structure. -********************************************************************/ - -bool samr_io_q_query_groupinfo(const char *desc, SAMR_Q_QUERY_GROUPINFO * q_e, - prs_struct *ps, int depth) -{ - if (q_e == NULL) - return False; - - prs_debug(ps, depth, desc, "samr_io_q_query_groupinfo"); - depth++; - - if(!prs_align(ps)) - return False; - - if(!smb_io_pol_hnd("pol", &q_e->pol, ps, depth)) - return False; - - if(!prs_uint16("switch_level", ps, depth, &q_e->switch_level)) - return False; - - return True; -} - -/******************************************************************* -inits a SAMR_R_QUERY_GROUPINFO structure. -********************************************************************/ - -- Samba Shared Repository