r11856: Replace unknown1 with group_attr.
authorGünther Deschner <gd@samba.org>
Tue, 22 Nov 2005 14:29:14 +0000 (14:29 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 16:05:30 +0000 (11:05 -0500)
Can anyone remember why we initialize groups only with 0x03 instead of 0x07 ?

Guenther
(This used to be commit 3282c7c458d390547fbaca44821eff376e8f9aaa)

source3/include/rpc_samr.h
source3/rpc_parse/parse_samr.c
source3/rpc_server/srv_samr_nt.c
source3/rpcclient/cmd_samr.c

index ae8bb7a2bed3f7ab22c39b09052a908f88b8572f..ac56e2dcc62de15392640c0b66ebf75f57969c71 100644 (file)
@@ -1065,7 +1065,7 @@ typedef struct samr_group_info1
 {
        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;
@@ -1085,7 +1085,7 @@ typedef struct samr_group_info2
 
 typedef struct samr_group_info3
 {
-       uint32 unknown_1; /* 0x0000 0003 - number of group members? */
+       uint32 group_attr; /* 0x0000 0003 - group attribute */
 
 } GROUP_INFO3;
 
index e0efb72aabb3619223418e468b3fc19cd2570052..ed6abc398b6c07dbb2ce4ed7adf5c8aaa3aaf4c2 100644 (file)
@@ -2141,7 +2141,7 @@ void init_samr_group_info1(GROUP_INFO1 * gr1,
 {
        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);
@@ -2174,7 +2174,7 @@ BOOL samr_io_group_info1(const char *desc, GROUP_INFO1 * gr1,
        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;
@@ -2238,7 +2238,7 @@ void init_samr_group_info3(GROUP_INFO3 *gr3)
 {
        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 ? */
 }
 
 /*******************************************************************
@@ -2256,7 +2256,7 @@ BOOL samr_io_group_info3(const char *desc, GROUP_INFO3 *gr3, prs_struct *ps, int
        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;
index 563c3f864f2d08b0cc0018d6d7b6bf859c8b9fe1..34779348a4aca6e0a7b717aa8fb103aca8ad4ea8 100644 (file)
@@ -1980,7 +1980,7 @@ NTSTATUS _samr_query_usergroups(pipes_struct *p, SAMR_Q_QUERY_USERGROUPS *q_u, S
                        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;
        }
index a761ea31634a4929d3de579f9198eef47136d759..7727330388f26d0062c5772b2944f8afdad389bd 100644 (file)
@@ -404,10 +404,19 @@ static void display_group_info1(GROUP_INFO1 *info1)
        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
  ****************************************************************************/
@@ -429,6 +438,10 @@ static void display_group_info_ctr(GROUP_INFO_CTR *ctr)
                    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;