mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
r16773: Fix one more RPC-SAMR test (an alias level), and make it clear that
the unknown value in the samr_GroupInfo structures are the group attributes. Andrew Bartlett
This commit is contained in:
parent
fee0716143
commit
c50095efab
@ -388,8 +388,8 @@
|
||||
} samr_GroupInfoAll;
|
||||
|
||||
typedef struct {
|
||||
uint32 unknown;
|
||||
} samr_GroupInfoX;
|
||||
samr_GroupAttrs attributes;
|
||||
} samr_GroupInfoAttributes;
|
||||
|
||||
typedef struct {
|
||||
lsa_String description;
|
||||
@ -398,17 +398,17 @@
|
||||
typedef enum {
|
||||
GROUPINFOALL = 1,
|
||||
GROUPINFONAME = 2,
|
||||
GROUPINFOX = 3,
|
||||
GROUPINFOATTRIBUTES = 3,
|
||||
GROUPINFODESCRIPTION = 4,
|
||||
GROUPINFOALL2 = 5
|
||||
} samr_GroupInfoEnum;
|
||||
|
||||
typedef [switch_type(samr_GroupInfoEnum)] union {
|
||||
[case(GROUPINFOALL)] samr_GroupInfoAll all;
|
||||
[case(GROUPINFONAME)] lsa_String name;
|
||||
[case(GROUPINFOX)] samr_GroupInfoX unknown;
|
||||
[case(GROUPINFODESCRIPTION)] lsa_String description;
|
||||
[case(GROUPINFOALL2)] samr_GroupInfoAll all2;
|
||||
[case(GROUPINFOALL)] samr_GroupInfoAll all;
|
||||
[case(GROUPINFONAME)] lsa_String name;
|
||||
[case(GROUPINFOATTRIBUTES)] samr_GroupInfoAttributes attributes;
|
||||
[case(GROUPINFODESCRIPTION)] lsa_String description;
|
||||
[case(GROUPINFOALL2)] samr_GroupInfoAll all2;
|
||||
} samr_GroupInfo;
|
||||
|
||||
NTSTATUS samr_QueryGroupInfo(
|
||||
|
@ -1642,19 +1642,25 @@ static NTSTATUS samr_QueryGroupInfo(struct dcesrv_call_state *dce_call, TALLOC_C
|
||||
switch (r->in.level) {
|
||||
case GROUPINFOALL:
|
||||
QUERY_STRING(msg, all.name.string, "sAMAccountName");
|
||||
r->out.info->all.attributes = 7; /* Do like w2k3 */
|
||||
r->out.info->all.attributes = SE_GROUP_MANDATORY | SE_GROUP_ENABLED_BY_DEFAULT | SE_GROUP_ENABLED; /* Do like w2k3 */
|
||||
QUERY_UINT (msg, all.num_members, "numMembers")
|
||||
QUERY_STRING(msg, all.description.string, "description");
|
||||
break;
|
||||
case GROUPINFONAME:
|
||||
QUERY_STRING(msg, name.string, "sAMAccountName");
|
||||
break;
|
||||
case GROUPINFOX:
|
||||
r->out.info->unknown.unknown = 7;
|
||||
case GROUPINFOATTRIBUTES:
|
||||
r->out.info->attributes.attributes = SE_GROUP_MANDATORY | SE_GROUP_ENABLED_BY_DEFAULT | SE_GROUP_ENABLED; /* Do like w2k3 */
|
||||
break;
|
||||
case GROUPINFODESCRIPTION:
|
||||
QUERY_STRING(msg, description.string, "description");
|
||||
break;
|
||||
case GROUPINFOALL2:
|
||||
QUERY_STRING(msg, all2.name.string, "sAMAccountName");
|
||||
r->out.info->all.attributes = SE_GROUP_MANDATORY | SE_GROUP_ENABLED_BY_DEFAULT | SE_GROUP_ENABLED; /* Do like w2k3 */
|
||||
QUERY_UINT (msg, all2.num_members, "numMembers")
|
||||
QUERY_STRING(msg, all2.description.string, "description");
|
||||
break;
|
||||
default:
|
||||
r->out.info = NULL;
|
||||
return NT_STATUS_INVALID_INFO_CLASS;
|
||||
@ -1698,7 +1704,7 @@ static NTSTATUS samr_SetGroupInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX
|
||||
* sAMAccountName attribute */
|
||||
SET_STRING(msg, name.string, "sAMAccountName");
|
||||
break;
|
||||
case GROUPINFOX:
|
||||
case GROUPINFOATTRIBUTES:
|
||||
/* This does not do anything obviously visible in W2k3 LDAP */
|
||||
break;
|
||||
default:
|
||||
@ -3193,7 +3199,7 @@ static NTSTATUS samr_TestPrivateFunctionsDomain(struct dcesrv_call_state *dce_ca
|
||||
static NTSTATUS samr_TestPrivateFunctionsUser(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct samr_TestPrivateFunctionsUser *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
return NT_STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user