The branch, master has been updated
       via  45f6eae... s4-smbtorture: fix drsblobs ndr torture test.
       via  fa1245f... s3: re-run make samba3-idl.
       via  1ff5550... drsblobs: remove utf8string2 from ForestTrustData.
       via  2e20cda... s4-smbtorture: activate job control tests against s3 in 
spoolss tests.
      from  5931588... tdb: Fix indentation in tdb_new_database()

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 45f6eae4c43f47b4ac766183aafe9a7139c257a0
Author: Günther Deschner <[email protected]>
Date:   Thu Mar 25 11:02:33 2010 +0100

    s4-smbtorture: fix drsblobs ndr torture test.
    
    Guenther

commit fa1245f01c73055160173c6a62e29b3368f38db1
Author: Günther Deschner <[email protected]>
Date:   Thu Mar 25 11:02:10 2010 +0100

    s3: re-run make samba3-idl.
    
    Guenther

commit 1ff55500ded3a20ff5ed3fcc7249bfb593ffd2f3
Author: Günther Deschner <[email protected]>
Date:   Thu Mar 25 10:56:15 2010 +0100

    drsblobs: remove utf8string2 from ForestTrustData.
    
    Simo, it's not really worth to add a new idl type just for being able to 
omit
    the size field. The size field is part of the spec in MS-ADTS 7.1.6.9.3.1 
so we
    should have it as well.
    
    Guenther

commit 2e20cdaeeb28bdaddcfd0fb1807e8f3eb8c8e525
Author: Günther Deschner <[email protected]>
Date:   Thu Mar 25 10:20:14 2010 +0100

    s4-smbtorture: activate job control tests against s3 in spoolss tests.
    
    Spoolss job control commands work for cups in s3 now but not for other
    backends. We need to investigate why.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 librpc/gen_ndr/drsblobs.h      |   11 +++-
 librpc/gen_ndr/ndr_drsblobs.c  |   99 +++++++++++++++++++---------------------
 librpc/gen_ndr/ndr_drsblobs.h  |    1 +
 librpc/idl/drsblobs.idl        |   13 ++++--
 librpc/idl/idl_types.h         |    6 --
 source4/torture/ndr/drsblobs.c |    9 ++-
 source4/torture/rpc/spoolss.c  |    7 +--
 7 files changed, 73 insertions(+), 73 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/drsblobs.h b/librpc/gen_ndr/drsblobs.h
index 18ca558..b7f9dac 100644
--- a/librpc/gen_ndr/drsblobs.h
+++ b/librpc/gen_ndr/drsblobs.h
@@ -457,11 +457,16 @@ struct ExtendedErrorInfoPtr {
        struct ExtendedErrorInfo *info;/* [unique] */
 };
 
+struct ForestTrustString {
+       uint32_t size;/* [value(strlen_m(string))] */
+       const char *string;/* [charset(UTF8)] */
+};
+
 struct ForestTrustDataDomainInfo {
        uint32_t sid_size;/* [value(ndr_size_dom_sid0(&sid,ndr->flags))] */
        struct dom_sid sid;/* [subcontext_size(sid_size),subcontext(0)] */
-       const char * dns_name;/* 
[flag(LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM)] */
-       const char * netbios_name;/* 
[flag(LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM)] */
+       struct ForestTrustString dns_name;
+       struct ForestTrustString netbios_name;
 }/* [flag(LIBNDR_FLAG_NOALIGN)] */;
 
 struct ForestTrustDataBinaryData {
@@ -470,7 +475,7 @@ struct ForestTrustDataBinaryData {
 }/* [flag(LIBNDR_FLAG_NOALIGN)] */;
 
 union ForestTrustData {
-       const char * name;/* 
[flag(LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM),case(FOREST_TRUST_TOP_LEVEL_NAME)]
 */
+       struct ForestTrustString name;/* [case(FOREST_TRUST_TOP_LEVEL_NAME)] */
        struct ForestTrustDataDomainInfo info;/* 
[case(FOREST_TRUST_DOMAIN_INFO)] */
        struct ForestTrustDataBinaryData data;/* [default] */
 }/* [nodiscriminant] */;
diff --git a/librpc/gen_ndr/ndr_drsblobs.c b/librpc/gen_ndr/ndr_drsblobs.c
index 1ff7aef..7de1de7 100644
--- a/librpc/gen_ndr/ndr_drsblobs.c
+++ b/librpc/gen_ndr/ndr_drsblobs.c
@@ -4058,6 +4058,41 @@ _PUBLIC_ void ndr_print_ExtendedErrorInfoPtr(struct 
ndr_print *ndr, const char *
        ndr->depth--;
 }
 
+static enum ndr_err_code ndr_push_ForestTrustString(struct ndr_push *ndr, int 
ndr_flags, const struct ForestTrustString *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 
strlen_m(r->string)));
+               NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, 
strlen_m(r->string), sizeof(uint8_t), CH_UTF8));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 4));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_ForestTrustString(struct ndr_pull *ndr, int 
ndr_flags, struct ForestTrustString *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
+               NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, 
r->size, sizeof(uint8_t), CH_UTF8));
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_ForestTrustString(struct ndr_print *ndr, const char 
*name, const struct ForestTrustString *r)
+{
+       ndr_print_struct(ndr, name, "ForestTrustString");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "size", (ndr->flags & 
LIBNDR_PRINT_SET_VALUES)?strlen_m(r->string):r->size);
+       ndr_print_string(ndr, "string", r->string);
+       ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_ForestTrustDataDomainInfo(struct ndr_push 
*ndr, int ndr_flags, const struct ForestTrustDataDomainInfo *r)
 {
        {
@@ -4072,18 +4107,8 @@ static enum ndr_err_code 
ndr_push_ForestTrustDataDomainInfo(struct ndr_push *ndr
                                NDR_CHECK(ndr_push_dom_sid(_ndr_sid, 
NDR_SCALARS, &r->sid));
                                NDR_CHECK(ndr_push_subcontext_end(ndr, 
_ndr_sid, 0, ndr_size_dom_sid0(&r->sid, ndr->flags)));
                        }
-                       {
-                               uint32_t _flags_save_string = ndr->flags;
-                               ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM);
-                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, 
r->dns_name));
-                               ndr->flags = _flags_save_string;
-                       }
-                       {
-                               uint32_t _flags_save_string = ndr->flags;
-                               ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM);
-                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, 
r->netbios_name));
-                               ndr->flags = _flags_save_string;
-                       }
+                       NDR_CHECK(ndr_push_ForestTrustString(ndr, NDR_SCALARS, 
&r->dns_name));
+                       NDR_CHECK(ndr_push_ForestTrustString(ndr, NDR_SCALARS, 
&r->netbios_name));
                        NDR_CHECK(ndr_push_trailer_align(ndr, 4));
                }
                if (ndr_flags & NDR_BUFFERS) {
@@ -4107,18 +4132,8 @@ static enum ndr_err_code 
ndr_pull_ForestTrustDataDomainInfo(struct ndr_pull *ndr
                                NDR_CHECK(ndr_pull_dom_sid(_ndr_sid, 
NDR_SCALARS, &r->sid));
                                NDR_CHECK(ndr_pull_subcontext_end(ndr, 
_ndr_sid, 0, r->sid_size));
                        }
-                       {
-                               uint32_t _flags_save_string = ndr->flags;
-                               ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM);
-                               NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, 
&r->dns_name));
-                               ndr->flags = _flags_save_string;
-                       }
-                       {
-                               uint32_t _flags_save_string = ndr->flags;
-                               ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM);
-                               NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, 
&r->netbios_name));
-                               ndr->flags = _flags_save_string;
-                       }
+                       NDR_CHECK(ndr_pull_ForestTrustString(ndr, NDR_SCALARS, 
&r->dns_name));
+                       NDR_CHECK(ndr_pull_ForestTrustString(ndr, NDR_SCALARS, 
&r->netbios_name));
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
                }
                if (ndr_flags & NDR_BUFFERS) {
@@ -4137,8 +4152,8 @@ _PUBLIC_ void ndr_print_ForestTrustDataDomainInfo(struct 
ndr_print *ndr, const c
                ndr->depth++;
                ndr_print_uint32(ndr, "sid_size", (ndr->flags & 
LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid0(&r->sid, ndr->flags):r->sid_size);
                ndr_print_dom_sid(ndr, "sid", &r->sid);
-               ndr_print_string(ndr, "dns_name", r->dns_name);
-               ndr_print_string(ndr, "netbios_name", r->netbios_name);
+               ndr_print_ForestTrustString(ndr, "dns_name", &r->dns_name);
+               ndr_print_ForestTrustString(ndr, "netbios_name", 
&r->netbios_name);
                ndr->depth--;
                ndr->flags = _flags_save_STRUCT;
        }
@@ -4202,21 +4217,11 @@ static enum ndr_err_code 
ndr_push_ForestTrustData(struct ndr_push *ndr, int ndr_
                NDR_CHECK(ndr_push_union_align(ndr, 4));
                switch (level) {
                        case FOREST_TRUST_TOP_LEVEL_NAME: {
-                               {
-                                       uint32_t _flags_save_string = 
ndr->flags;
-                                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM);
-                                       NDR_CHECK(ndr_push_string(ndr, 
NDR_SCALARS, r->name));
-                                       ndr->flags = _flags_save_string;
-                               }
+                               NDR_CHECK(ndr_push_ForestTrustString(ndr, 
NDR_SCALARS, &r->name));
                        break; }
 
                        case FOREST_TRUST_TOP_LEVEL_NAME_EX: {
-                               {
-                                       uint32_t _flags_save_string = 
ndr->flags;
-                                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM);
-                                       NDR_CHECK(ndr_push_string(ndr, 
NDR_SCALARS, r->name));
-                                       ndr->flags = _flags_save_string;
-                               }
+                               NDR_CHECK(ndr_push_ForestTrustString(ndr, 
NDR_SCALARS, &r->name));
                        break; }
 
                        case FOREST_TRUST_DOMAIN_INFO: {
@@ -4257,21 +4262,11 @@ static enum ndr_err_code 
ndr_pull_ForestTrustData(struct ndr_pull *ndr, int ndr_
                NDR_CHECK(ndr_pull_union_align(ndr, 4));
                switch (level) {
                        case FOREST_TRUST_TOP_LEVEL_NAME: {
-                               {
-                                       uint32_t _flags_save_string = 
ndr->flags;
-                                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM);
-                                       NDR_CHECK(ndr_pull_string(ndr, 
NDR_SCALARS, &r->name));
-                                       ndr->flags = _flags_save_string;
-                               }
+                               NDR_CHECK(ndr_pull_ForestTrustString(ndr, 
NDR_SCALARS, &r->name));
                        break; }
 
                        case FOREST_TRUST_TOP_LEVEL_NAME_EX: {
-                               {
-                                       uint32_t _flags_save_string = 
ndr->flags;
-                                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM);
-                                       NDR_CHECK(ndr_pull_string(ndr, 
NDR_SCALARS, &r->name));
-                                       ndr->flags = _flags_save_string;
-                               }
+                               NDR_CHECK(ndr_pull_ForestTrustString(ndr, 
NDR_SCALARS, &r->name));
                        break; }
 
                        case FOREST_TRUST_DOMAIN_INFO: {
@@ -4310,11 +4305,11 @@ _PUBLIC_ void ndr_print_ForestTrustData(struct 
ndr_print *ndr, const char *name,
        ndr_print_union(ndr, name, level, "ForestTrustData");
        switch (level) {
                case FOREST_TRUST_TOP_LEVEL_NAME:
-                       ndr_print_string(ndr, "name", r->name);
+                       ndr_print_ForestTrustString(ndr, "name", &r->name);
                break;
 
                case FOREST_TRUST_TOP_LEVEL_NAME_EX:
-                       ndr_print_string(ndr, "name", r->name);
+                       ndr_print_ForestTrustString(ndr, "name", &r->name);
                break;
 
                case FOREST_TRUST_DOMAIN_INFO:
diff --git a/librpc/gen_ndr/ndr_drsblobs.h b/librpc/gen_ndr/ndr_drsblobs.h
index 7831fad..40fac7c 100644
--- a/librpc/gen_ndr/ndr_drsblobs.h
+++ b/librpc/gen_ndr/ndr_drsblobs.h
@@ -158,6 +158,7 @@ enum ndr_err_code ndr_push_ExtendedErrorInfo(struct 
ndr_push *ndr, int ndr_flags
 enum ndr_err_code ndr_pull_ExtendedErrorInfo(struct ndr_pull *ndr, int 
ndr_flags, struct ExtendedErrorInfo *r);
 void ndr_print_ExtendedErrorInfo(struct ndr_print *ndr, const char *name, 
const struct ExtendedErrorInfo *r);
 void ndr_print_ExtendedErrorInfoPtr(struct ndr_print *ndr, const char *name, 
const struct ExtendedErrorInfoPtr *r);
+void ndr_print_ForestTrustString(struct ndr_print *ndr, const char *name, 
const struct ForestTrustString *r);
 void ndr_print_ForestTrustDataDomainInfo(struct ndr_print *ndr, const char 
*name, const struct ForestTrustDataDomainInfo *r);
 void ndr_print_ForestTrustDataBinaryData(struct ndr_print *ndr, const char 
*name, const struct ForestTrustDataBinaryData *r);
 void ndr_print_ForestTrustData(struct ndr_print *ndr, const char *name, const 
union ForestTrustData *r);
diff --git a/librpc/idl/drsblobs.idl b/librpc/idl/drsblobs.idl
index 93c44f3..5b10326 100644
--- a/librpc/idl/drsblobs.idl
+++ b/librpc/idl/drsblobs.idl
@@ -574,11 +574,16 @@ interface drsblobs {
 
        /* MS-ADTS 7.1.6.9.3 msDS-TrustForestTrustInfo Attribute */
 
+       typedef struct {
+               [value(strlen_m(string))] uint32 size;
+               [charset(UTF8)] uint8 string[size];
+       } ForestTrustString;
+
        typedef [flag(NDR_NOALIGN)] struct {
                [value(ndr_size_dom_sid0(&sid, ndr->flags))] uint32 sid_size;
                [subcontext(0),subcontext_size(sid_size)] dom_sid sid;
-               utf8string2 dns_name;
-               utf8string2 netbios_name;
+               ForestTrustString dns_name;
+               ForestTrustString netbios_name;
        } ForestTrustDataDomainInfo;
 
        typedef [flag(NDR_NOALIGN)] struct {
@@ -587,8 +592,8 @@ interface drsblobs {
        } ForestTrustDataBinaryData;
 
        typedef [nodiscriminant] union {
-               [case(FOREST_TRUST_TOP_LEVEL_NAME)] utf8string2 name;
-               [case(FOREST_TRUST_TOP_LEVEL_NAME_EX)] utf8string2 name;
+               [case(FOREST_TRUST_TOP_LEVEL_NAME)] ForestTrustString name;
+               [case(FOREST_TRUST_TOP_LEVEL_NAME_EX)] ForestTrustString name;
                [case(FOREST_TRUST_DOMAIN_INFO)] ForestTrustDataDomainInfo info;
                [default] ForestTrustDataBinaryData data;
        } ForestTrustData;
diff --git a/librpc/idl/idl_types.h b/librpc/idl/idl_types.h
index 72165cf..3c6c12c 100644
--- a/librpc/idl/idl_types.h
+++ b/librpc/idl/idl_types.h
@@ -48,12 +48,6 @@
 #define utf8string     [flag(STR_UTF8|STR_NULLTERM)] string
 
 /*
-  an utf8 string prefixed with [size], 32 bits
-  not null terminated
-*/
-#define utf8string2    [flag(STR_SIZE4|STR_UTF8|STR_NOTERM)] string
-
-/*
   a null terminated UCS2 string
 */
 #define nstring_array  [flag(STR_NULLTERM)] string_array
diff --git a/source4/torture/ndr/drsblobs.c b/source4/torture/ndr/drsblobs.c
index 2b3e0a8..77cbe5f 100644
--- a/source4/torture/ndr/drsblobs.c
+++ b/source4/torture/ndr/drsblobs.c
@@ -43,15 +43,18 @@ static bool forest_trust_info_check_out(struct 
torture_context *tctx,
        torture_assert_int_equal(tctx, r->records[0].record.flags, 0, "record 
flags");
        torture_assert_u64_equal(tctx, r->records[0].record.timestamp, 
0x9BD5AF0001CACA3E, "record timestamp");
        torture_assert_int_equal(tctx, r->records[0].record.type, 
FOREST_TRUST_TOP_LEVEL_NAME, "record type");
-       torture_assert_str_equal(tctx, r->records[0].record.data.name, 
"f2.test", "record name");
+       torture_assert_int_equal(tctx, r->records[0].record.data.name.size, 7, 
"record name size");
+       torture_assert_str_equal(tctx, r->records[0].record.data.name.string, 
"f2.test", "record name string");
        torture_assert_int_equal(tctx, r->records[1].record_size, 0x0000003a, 
"record size");
        torture_assert_int_equal(tctx, r->records[1].record.flags, 0, "record 
flags");
        torture_assert_u64_equal(tctx, r->records[1].record.timestamp, 
0x9BD5AF0001CACA3E, "record timestamp");
        torture_assert_int_equal(tctx, r->records[1].record.type, 
FOREST_TRUST_DOMAIN_INFO, "record type");
        torture_assert_int_equal(tctx, r->records[1].record.data.info.sid_size, 
0x00000018, "record info sid_size");
        torture_assert_sid_equal(tctx, &r->records[1].record.data.info.sid, 
dom_sid_parse_talloc(tctx, "S-1-5-21-677661288-1956808876-2402106903"), "record 
info sid");
-       torture_assert_str_equal(tctx, r->records[1].record.data.info.dns_name, 
"f2.test", "record info dns_name");
-       torture_assert_str_equal(tctx, 
r->records[1].record.data.info.netbios_name, "F2", "record info netbios_name");
+       torture_assert_int_equal(tctx, 
r->records[1].record.data.info.dns_name.size, 7, "record name size");
+       torture_assert_str_equal(tctx, 
r->records[1].record.data.info.dns_name.string, "f2.test", "record info 
dns_name string");
+       torture_assert_int_equal(tctx, 
r->records[1].record.data.info.netbios_name.size, 2, "record info netbios_name 
size");
+       torture_assert_str_equal(tctx, 
r->records[1].record.data.info.netbios_name.string, "F2", "record info 
netbios_name string");
 
        return true;
 }
diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c
index b06c109..6bd3389 100644
--- a/source4/torture/rpc/spoolss.c
+++ b/source4/torture/rpc/spoolss.c
@@ -2701,11 +2701,8 @@ static bool test_EnumJobs(struct torture_context *tctx,
                        torture_assert(tctx, test_GetJob(tctx, b, handle, 
info[j].info1.job_id),
                                "failed to call test_GetJob");
 
-                       /* FIXME - gd */
-                       if (!torture_setting_bool(tctx, "samba3", false)) {
-                               test_SetJob(tctx, b, handle, 
info[j].info1.job_id, SPOOLSS_JOB_CONTROL_PAUSE);
-                               test_SetJob(tctx, b, handle, 
info[j].info1.job_id, SPOOLSS_JOB_CONTROL_RESUME);
-                       }
+                       test_SetJob(tctx, b, handle, info[j].info1.job_id, 
SPOOLSS_JOB_CONTROL_PAUSE);
+                       test_SetJob(tctx, b, handle, info[j].info1.job_id, 
SPOOLSS_JOB_CONTROL_RESUME);
                }
 
        } else {


-- 
Samba Shared Repository

Reply via email to