s4: merge from s3 samr.idl.
authorGünther Deschner <gd@samba.org>
Wed, 15 Oct 2008 15:42:33 +0000 (17:42 +0200)
committerGünther Deschner <gd@samba.org>
Wed, 15 Oct 2008 15:42:33 +0000 (17:42 +0200)
Guenther

source4/librpc/idl/samr.idl
source4/rpc_server/samr/dcesrv_samr.c
source4/torture/rpc/samr.c
source4/torture/rpc/samr_accessmask.c

index b6cce3819604b674577280148853a621aa33c7e2..47882dfb8424d33d70700596b43b4002a56e61a1 100644 (file)
@@ -730,6 +730,17 @@ import "misc.idl", "lsa.idl", "security.idl";
                NTTIME acct_expiry;
        } samr_UserInfo17;
 
+       typedef [public, flag(NDR_PAHEX)] struct {
+               uint8 hash[16];
+       } samr_Password;
+
+       typedef struct {
+               samr_Password lm_pwd;
+               samr_Password nt_pwd;
+               boolean8 lm_pwd_active;
+               boolean8 nt_pwd_active;
+       } samr_UserInfo18;
+
        typedef struct {
                lsa_String parameters;
        } samr_UserInfo20;
@@ -768,6 +779,10 @@ import "misc.idl", "lsa.idl", "security.idl";
                SAMR_FIELD_OWF_PWD          = 0x20000000
        } samr_FieldsPresent;
 
+       /* used for 'password_expired' in samr_UserInfo21 */
+       const int PASS_MUST_CHANGE_AT_NEXT_LOGON = 0x01;
+       const int PASS_DONT_CHANGE_AT_NEXT_LOGON = 0x00;
+
        typedef struct {
                NTTIME last_logon;
                NTTIME last_logoff;
@@ -850,6 +865,7 @@ import "misc.idl", "lsa.idl", "security.idl";
                [case(14)] samr_UserInfo14 info14;
                [case(16)] samr_UserInfo16 info16;
                [case(17)] samr_UserInfo17 info17;
+               [case(18)] samr_UserInfo18 info18;
                [case(20)] samr_UserInfo20 info20;
                [case(21)] samr_UserInfo21 info21;
                [case(23)] samr_UserInfo23 info23;
@@ -875,10 +891,6 @@ import "misc.idl", "lsa.idl", "security.idl";
 
        /************************/
        /* Function    0x26     */
-       typedef [public, flag(NDR_PAHEX)] struct {
-               uint8 hash[16];
-       } samr_Password;
-
        /*
          this is a password change interface that doesn't give
          the server the plaintext password. Depricated.
@@ -1229,9 +1241,16 @@ import "misc.idl", "lsa.idl", "security.idl";
 
        /************************/
        /* Function    0x3e     */
+
+       typedef enum {
+               SAMR_CONNECT_PRE_W2K    = 1,
+               SAMR_CONNECT_W2K        = 2,
+               SAMR_CONNECT_AFTER_W2K  = 3
+       } samr_ConnectVersion;
+
        NTSTATUS samr_Connect4(
                [in,unique,string,charset(UTF16)] uint16 *system_name,
-               [in] uint32 unknown,
+               [in] samr_ConnectVersion client_version,
                [in] samr_ConnectAccessMask access_mask,
                [out,ref]  policy_handle *connect_handle
                );
@@ -1264,7 +1283,7 @@ import "misc.idl", "lsa.idl", "security.idl";
        /* Function    0x40      */
 
        typedef struct {
-               uint32         unknown1; /* w2k3 gives 3 */
+               samr_ConnectVersion client_version; /* w2k3 gives 3 */
                uint32         unknown2; /* w2k3 gives 0 */
        } samr_ConnectInfo1;
 
index 0fe7928cb5fccd52d8ac41cbd30e10d07bb2289d..22d201e58eaa295955946d096db15393f318bc9e 100644 (file)
@@ -4262,7 +4262,7 @@ static NTSTATUS dcesrv_samr_Connect5(struct dcesrv_call_state *dce_call, TALLOC_
 
        status = dcesrv_samr_Connect(dce_call, mem_ctx, &c);
 
-       r->out.info->info1.unknown1 = 3;
+       r->out.info->info1.client_version = SAMR_CONNECT_AFTER_W2K;
        r->out.info->info1.unknown2 = 0;
        r->out.level = r->in.level;
 
index d0aee057d38d60240618bbb3fc1ec045ce7f442e..b3343e38d17cc93328dc202e502163e8fe1d0e79 100644 (file)
@@ -4525,7 +4525,7 @@ static bool test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        printf("testing samr_Connect4\n");
 
        r4.in.system_name = "";
-       r4.in.unknown = 0;
+       r4.in.client_version = 0;
        r4.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r4.out.connect_handle = &h;
 
@@ -4543,7 +4543,7 @@ static bool test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        printf("testing samr_Connect5\n");
 
-       info.info1.unknown1 = 0;
+       info.info1.client_version = 0;
        info.info1.unknown2 = 0;
 
        r5.in.system_name = "";
index f496f6300c504c4184552f267c9c7f6fa923464b..bfff8c9267f72402efb6d3b114d6d072e9816d96 100644 (file)
@@ -53,7 +53,7 @@ static NTSTATUS torture_samr_Connect5(struct torture_context *tctx,
        struct samr_Connect5 r5;
        union samr_ConnectInfo info;
 
-       info.info1.unknown1 = 0;
+       info.info1.client_version = 0;
        info.info1.unknown2 = 0;
        r5.in.system_name = "";
        r5.in.level = 1;