From 93531a52f030cad7d4237d7813fa1d73d641b35a Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 16 Jan 2010 12:03:01 +1100 Subject: [PATCH] s4-idl: in DsReplicaGetInfo unknown2 is actually an enumeration_context --- librpc/gen_ndr/drsuapi.h | 14 ++++----- librpc/gen_ndr/ndr_drsuapi.c | 42 ++++++++++++------------- librpc/idl/drsuapi.idl | 14 ++++----- source4/dsdb/kcc/kcc_drs_replica_info.c | 4 +-- source4/torture/rpc/dsgetinfo.c | 4 +-- 5 files changed, 39 insertions(+), 39 deletions(-) diff --git a/librpc/gen_ndr/drsuapi.h b/librpc/gen_ndr/drsuapi.h index 6cc62a8e94e..a440b7a6ea2 100644 --- a/librpc/gen_ndr/drsuapi.h +++ b/librpc/gen_ndr/drsuapi.h @@ -1295,10 +1295,10 @@ struct drsuapi_DsReplicaGetInfoRequest2 { enum drsuapi_DsReplicaInfoType info_type; const char *object_dn;/* [unique,charset(UTF16)] */ struct GUID guid1; - uint32_t unknown1; + uint32_t flags; const char *string1;/* [unique,charset(UTF16)] */ const char *string2;/* [unique,charset(UTF16)] */ - uint32_t unknown2; + uint32_t enumeration_context; }; union drsuapi_DsReplicaGetInfoRequest { @@ -1420,13 +1420,13 @@ struct drsuapi_DsReplicaAttrValMetaData { struct drsuapi_DsReplicaAttrValMetaDataCtr { uint32_t count; - int32_t enumeration_context; + uint32_t enumeration_context; struct drsuapi_DsReplicaAttrValMetaData *array;/* [size_is(count)] */ }; struct drsuapi_DsReplicaCursor2Ctr { uint32_t count; - int32_t enumeration_context; + uint32_t enumeration_context; struct drsuapi_DsReplicaCursor2 *array;/* [size_is(count)] */ }; @@ -1439,7 +1439,7 @@ struct drsuapi_DsReplicaCursor3 { struct drsuapi_DsReplicaCursor3Ctr { uint32_t count; - int32_t enumeration_context; + uint32_t enumeration_context; struct drsuapi_DsReplicaCursor3 *array;/* [size_is(count)] */ }; @@ -1455,7 +1455,7 @@ struct drsuapi_DsReplicaObjMetaData2 { struct drsuapi_DsReplicaObjMetaData2Ctr { uint32_t count; - int32_t enumeration_context; + uint32_t enumeration_context; struct drsuapi_DsReplicaObjMetaData2 *array;/* [size_is(count)] */ }; @@ -1476,7 +1476,7 @@ struct drsuapi_DsReplicaAttrValMetaData2 { struct drsuapi_DsReplicaAttrValMetaData2Ctr { uint32_t count; - int32_t enumeration_context; + uint32_t enumeration_context; struct drsuapi_DsReplicaAttrValMetaData2 *array;/* [size_is(count)] */ }; diff --git a/librpc/gen_ndr/ndr_drsuapi.c b/librpc/gen_ndr/ndr_drsuapi.c index 3b8ac3d751d..f18b9aab780 100644 --- a/librpc/gen_ndr/ndr_drsuapi.c +++ b/librpc/gen_ndr/ndr_drsuapi.c @@ -9708,10 +9708,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pu NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->info_type)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn)); NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid1)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->string1)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->string2)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context)); NDR_CHECK(ndr_push_trailer_align(ndr, 5)); } if (ndr_flags & NDR_BUFFERS) { @@ -9755,7 +9755,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pu r->object_dn = NULL; } NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid1)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags)); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string1)); if (_ptr_string1) { NDR_PULL_ALLOC(ndr, r->string1); @@ -9768,7 +9768,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pu } else { r->string2 = NULL; } - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context)); NDR_CHECK(ndr_pull_trailer_align(ndr, 5)); } if (ndr_flags & NDR_BUFFERS) { @@ -9824,7 +9824,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest2(struct ndr_print *ndr, } ndr->depth--; ndr_print_GUID(ndr, "guid1", &r->guid1); - ndr_print_uint32(ndr, "unknown1", r->unknown1); + ndr_print_uint32(ndr, "flags", r->flags); ndr_print_ptr(ndr, "string1", r->string1); ndr->depth++; if (r->string1) { @@ -9837,7 +9837,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest2(struct ndr_print *ndr, ndr_print_string(ndr, "string2", r->string2); } ndr->depth--; - ndr_print_uint32(ndr, "unknown2", r->unknown2); + ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context); ndr->depth--; } @@ -10969,7 +10969,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count)); NDR_CHECK(ndr_push_align(ndr, 8)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); - NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context)); for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) { NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0])); } @@ -10991,7 +10991,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); NDR_CHECK(ndr_pull_align(ndr, 8)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count)); - NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context)); NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); @@ -11021,7 +11021,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_print *nd ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaDataCtr"); ndr->depth++; ndr_print_uint32(ndr, "count", r->count); - ndr_print_int32(ndr, "enumeration_context", r->enumeration_context); + ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context); ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count); ndr->depth++; for (cntr_array_0=0;cntr_array_0count;cntr_array_0++) { @@ -11042,7 +11042,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor2Ctr(struct ndr_push *n NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count)); NDR_CHECK(ndr_push_align(ndr, 8)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); - NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context)); for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) { NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->array[cntr_array_0])); } @@ -11061,7 +11061,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor2Ctr(struct ndr_pull *n NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); NDR_CHECK(ndr_pull_align(ndr, 8)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count)); - NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context)); NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); @@ -11085,7 +11085,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor2Ctr(struct ndr_print *ndr, const ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor2Ctr"); ndr->depth++; ndr_print_uint32(ndr, "count", r->count); - ndr_print_int32(ndr, "enumeration_context", r->enumeration_context); + ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context); ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count); ndr->depth++; for (cntr_array_0=0;cntr_array_0count;cntr_array_0++) { @@ -11177,7 +11177,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor3Ctr(struct ndr_push *n NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count)); NDR_CHECK(ndr_push_align(ndr, 8)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); - NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context)); for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) { NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3(ndr, NDR_SCALARS, &r->array[cntr_array_0])); } @@ -11199,7 +11199,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor3Ctr(struct ndr_pull *n NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); NDR_CHECK(ndr_pull_align(ndr, 8)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count)); - NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context)); NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); @@ -11229,7 +11229,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor3Ctr(struct ndr_print *ndr, const ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor3Ctr"); ndr->depth++; ndr_print_uint32(ndr, "count", r->count); - ndr_print_int32(ndr, "enumeration_context", r->enumeration_context); + ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context); ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count); ndr->depth++; for (cntr_array_0=0;cntr_array_0count;cntr_array_0++) { @@ -11360,7 +11360,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_pu NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count)); NDR_CHECK(ndr_push_align(ndr, 8)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); - NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context)); for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) { NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0])); } @@ -11382,7 +11382,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_pu NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); NDR_CHECK(ndr_pull_align(ndr, 8)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count)); - NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context)); NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); @@ -11412,7 +11412,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_print *ndr, ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaData2Ctr"); ndr->depth++; ndr_print_uint32(ndr, "count", r->count); - ndr_print_int32(ndr, "enumeration_context", r->enumeration_context); + ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context); ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count); ndr->depth++; for (cntr_array_0=0;cntr_array_0count;cntr_array_0++) { @@ -11609,7 +11609,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaData2Ctr(struct nd NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count)); NDR_CHECK(ndr_push_align(ndr, 8)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); - NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context)); for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) { NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0])); } @@ -11631,7 +11631,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaData2Ctr(struct nd NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); NDR_CHECK(ndr_pull_align(ndr, 8)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count)); - NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context)); NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); @@ -11661,7 +11661,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_print *n ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaData2Ctr"); ndr->depth++; ndr_print_uint32(ndr, "count", r->count); - ndr_print_int32(ndr, "enumeration_context", r->enumeration_context); + ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context); ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count); ndr->depth++; for (cntr_array_0=0;cntr_array_0count;cntr_array_0++) { diff --git a/librpc/idl/drsuapi.idl b/librpc/idl/drsuapi.idl index 9a9df03bb00..b538b7ca771 100644 --- a/librpc/idl/drsuapi.idl +++ b/librpc/idl/drsuapi.idl @@ -1416,10 +1416,10 @@ interface drsuapi drsuapi_DsReplicaInfoType info_type; [charset(UTF16),string] uint16 *object_dn; GUID guid1; - uint32 unknown1; + uint32 flags; [charset(UTF16),string] uint16 *string1; [charset(UTF16),string] uint16 *string2; - uint32 unknown2; + uint32 enumeration_context; } drsuapi_DsReplicaGetInfoRequest2; typedef [switch_type(drsuapi_DsReplicaGetInfoLevel)] union { @@ -1530,13 +1530,13 @@ interface drsuapi typedef struct { uint32 count; - int32 enumeration_context; + uint32 enumeration_context; [size_is(count)] drsuapi_DsReplicaAttrValMetaData array[]; } drsuapi_DsReplicaAttrValMetaDataCtr; typedef struct { uint32 count; - int32 enumeration_context; + uint32 enumeration_context; [size_is(count)] drsuapi_DsReplicaCursor2 array[]; } drsuapi_DsReplicaCursor2Ctr; @@ -1549,7 +1549,7 @@ interface drsuapi typedef struct { uint32 count; - int32 enumeration_context; + uint32 enumeration_context; [size_is(count)] drsuapi_DsReplicaCursor3 array[]; } drsuapi_DsReplicaCursor3Ctr; @@ -1565,7 +1565,7 @@ interface drsuapi typedef struct { uint32 count; - int32 enumeration_context; + uint32 enumeration_context; [size_is(count)] drsuapi_DsReplicaObjMetaData2 array[]; } drsuapi_DsReplicaObjMetaData2Ctr; @@ -1586,7 +1586,7 @@ interface drsuapi typedef struct { uint32 count; - int32 enumeration_context; + uint32 enumeration_context; [size_is(count)] drsuapi_DsReplicaAttrValMetaData2 array[]; } drsuapi_DsReplicaAttrValMetaData2Ctr; diff --git a/source4/dsdb/kcc/kcc_drs_replica_info.c b/source4/dsdb/kcc/kcc_drs_replica_info.c index 6d42ec62529..ef580b8275c 100644 --- a/source4/dsdb/kcc/kcc_drs_replica_info.c +++ b/source4/dsdb/kcc/kcc_drs_replica_info.c @@ -382,13 +382,13 @@ NTSTATUS kccdrs_replica_get_info(struct irpc_message *msg, } else { /* r->in.level == DRSUAPI_DS_REPLICA_GET_INFO2 */ req2 = &req->in.req->req2; - if (req2->unknown2 == 0xffffffff) { + if (req2->enumeration_context == 0xffffffff) { /* no more data is available */ status = WERR_NO_MORE_ITEMS; /* on MS-DRSR it is ERROR_NO_MORE_ITEMS */ goto DONE; } - base_index = req2->unknown2; /* Note: This is dwEnumerationContext on MS-DRSR 4.1.13.1.3 */ + base_index = req2->enumeration_context; info_type = req2->info_type; object_dn = req2->object_dn; req_src_dsa_guid = req2->guid1; diff --git a/source4/torture/rpc/dsgetinfo.c b/source4/torture/rpc/dsgetinfo.c index 7aad7a16d04..acad1a09169 100644 --- a/source4/torture/rpc/dsgetinfo.c +++ b/source4/torture/rpc/dsgetinfo.c @@ -267,10 +267,10 @@ static bool test_getinfo(struct torture_context *tctx, r.in.req->req2.info_type = array[i].infotype; r.in.req->req2.object_dn = object_dn; ZERO_STRUCT(r.in.req->req2.guid1); - r.in.req->req2.unknown1 = 0; + r.in.req->req2.flags = 0; r.in.req->req2.string1 = NULL; r.in.req->req2.string2 = NULL; - r.in.req->req2.unknown2 = 0; + r.in.req->req2.enumeration_context = 0; break; } -- 2.34.1