{
UNIHDR hdr_acct_name;
- uint32 unknown_1; /* 0x0000 0003 - number of group members? */
+ uint32 group_attr; /* 0x0000 0003 - group attribute */
uint32 num_members; /* 0x0000 0001 - number of group members? */
UNIHDR hdr_acct_desc;
typedef struct samr_group_info3
{
- uint32 unknown_1; /* 0x0000 0003 - number of group members? */
+ uint32 group_attr; /* 0x0000 0003 - group attribute */
} GROUP_INFO3;
{
DEBUG(5, ("init_samr_group_info1\n"));
- gr1->unknown_1 = 0x3;
+ 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);
if(!smb_io_unihdr("hdr_acct_name", &gr1->hdr_acct_name, ps, depth))
return False;
- if(!prs_uint32("unknown_1", ps, depth, &gr1->unknown_1))
+ if(!prs_uint32("group_attr", ps, depth, &gr1->group_attr))
return False;
if(!prs_uint32("num_members", ps, depth, &gr1->num_members))
return False;
{
DEBUG(5, ("init_samr_group_info3\n"));
- gr3->unknown_1 = 0x3;
+ gr3->group_attr = (SE_GROUP_MANDATORY|SE_GROUP_ENABLED_BY_DEFAULT); /* why not | SE_GROUP_ENABLED ? */
}
/*******************************************************************
if(!prs_align(ps))
return False;
- if(!prs_uint32("unknown_1", ps, depth, &gr3->unknown_1))
+ if(!prs_uint32("group_attr", ps, depth, &gr3->group_attr))
return False;
return True;
continue;
gids = TALLOC_REALLOC_ARRAY(p->mem_ctx, gids, DOM_GID, num_gids+1);
- gids[num_gids].attr=7;
+ gids[num_gids].attr= (SE_GROUP_MANDATORY|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_ENABLED);
gids[num_gids].g_rid = rid;
num_gids += 1;
}
printf("\tGroup Name:\t%s\n", temp);
unistr2_to_ascii(temp, &info1->uni_acct_desc, sizeof(temp)-1);
printf("\tDescription:\t%s\n", temp);
- printf("\tunk1:%d\n", info1->unknown_1);
+ printf("\tGroup Attribute:%d\n", info1->group_attr);
printf("\tNum Members:%d\n", info1->num_members);
}
+/****************************************************************************
+ display group info
+ ****************************************************************************/
+static void display_group_info3(GROUP_INFO3 *info3)
+{
+ printf("\tGroup Attribute:%d\n", info3->group_attr);
+}
+
+
/****************************************************************************
display group info
****************************************************************************/
display_group_info1(&ctr->group.info1);
break;
}
+ case 3: {
+ display_group_info3(&ctr->group.info3);
+ break;
+ }
case 4: {
display_group_info4(&ctr->group.info4);
break;