From 1eb5756ca58ddd01c1134cef2c3962053bcdaa82 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 30 Jun 2008 13:01:02 +0200 Subject: drsuapi.idl: remove some unknows from DsGetNCChanges() metze (This used to be commit 924ef407bd20331cc94f5aeb58f53a5838ae00a4) --- source4/librpc/idl/drsuapi.idl | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'source4') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 2f48287233..6701d22a63 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -230,6 +230,17 @@ interface drsuapi DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET = 0x40000000 } drsuapi_DsReplicaNeighbourFlags; + typedef [flag(NDR_PAHEX),v1_enum] enum { + DRSUAPI_EXOP_NONE = 0x00000000, + DRSUAPI_EXOP_FSMO_REQ_ROLE = 0x00000001, + DRSUAPI_EXOP_FSMO_RID_ALLOC = 0x00000002, + DRSUAPI_EXOP_FSMO_RID_REQ_ROLE = 0x00000003, + DRSUAPI_EXOP_FSMO_REQ_PDC = 0x00000004, + DRSUAPI_EXOP_FSMO_ABANDON_ROLE = 0x00000005, + DRSUAPI_EXOP_REPL_OBJ = 0x00000006, + DRSUAPI_EXOP_REPL_SECRET = 0x00000007 + } drsuapi_DsExtendedOperation; + typedef struct { GUID destination_dsa_guid; GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ @@ -239,8 +250,8 @@ interface drsuapi drsuapi_DsReplicaNeighbourFlags replica_flags; uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */ uint32 max_ndr_size; /* w2k3 seems to ignore this */ - uint32 unknown4; - hyper h1; + drsuapi_DsExtendedOperation extended_op; + hyper fsmo_info; } drsuapi_DsGetNCChangesRequest5; /* @@ -400,6 +411,13 @@ interface drsuapi DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs = 0x0009072c } drsuapi_DsAttributeId; + typedef struct { + [value(1)] uint32 version; + [value(0)] uint32 reserved1; + [range(1,0x100000)] uint32 num_attids; + [size_is(num_attids)] drsuapi_DsAttributeId attids[]; + } drsuapi_DsPartialAttributeSet; + typedef struct { GUID destination_dsa_guid; GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ @@ -409,10 +427,10 @@ interface drsuapi drsuapi_DsReplicaNeighbourFlags replica_flags; uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */ uint32 max_ndr_size; /* w2k3 seems to ignore this */ - uint32 unknown4; - hyper h1; - uint32 unique_ptr1; - uint32 unique_ptr2; + drsuapi_DsExtendedOperation extended_op; + hyper fsmo_info; + drsuapi_DsPartialAttributeSet *partial_attribute_set; + drsuapi_DsPartialAttributeSet *partial_attribute_set_ex; drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; } drsuapi_DsGetNCChangesRequest8; -- cgit From c88ec856bd88a22e281cd9cf99ad2828d4bbbe2b Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 30 Jun 2008 13:03:17 +0200 Subject: drsuapi.idl: remove some unknows from DsGetNCChanges() (update samba4 callers) metze (This used to be commit d41b3dd6ffc4fd894bc05798dbc2ff4b53933a06) --- source4/dsdb/repl/drepl_out_helpers.c | 12 ++++++------ source4/libnet/libnet_become_dc.c | 12 ++++++------ source4/torture/rpc/drsuapi.c | 12 ++++++------ source4/torture/rpc/dssync.c | 12 ++++++------ 4 files changed, 24 insertions(+), 24 deletions(-) (limited to 'source4') diff --git a/source4/dsdb/repl/drepl_out_helpers.c b/source4/dsdb/repl/drepl_out_helpers.c index aede6e6595..d79d94fc12 100644 --- a/source4/dsdb/repl/drepl_out_helpers.c +++ b/source4/dsdb/repl/drepl_out_helpers.c @@ -253,10 +253,10 @@ static void dreplsrv_op_pull_source_get_changes_send(struct dreplsrv_op_pull_sou r->in.req.req8.replica_flags = rf1->replica_flags; r->in.req.req8.max_object_count = 133; r->in.req.req8.max_ndr_size = 1336811; - r->in.req.req8.unknown4 = 0; - r->in.req.req8.h1 = 0; - r->in.req.req8.unique_ptr1 = 0; - r->in.req.req8.unique_ptr2 = 0; + r->in.req.req8.extended_op = DRSUAPI_EXOP_NONE; + r->in.req.req8.fsmo_info = 0; + r->in.req.req8.partial_attribute_set = NULL; + r->in.req.req8.partial_attribute_set_ex = NULL; r->in.req.req8.mapping_ctr.num_mappings = 0; r->in.req.req8.mapping_ctr.mappings = NULL; } else { @@ -269,8 +269,8 @@ static void dreplsrv_op_pull_source_get_changes_send(struct dreplsrv_op_pull_sou r->in.req.req5.replica_flags = rf1->replica_flags; r->in.req.req5.max_object_count = 133; r->in.req.req5.max_ndr_size = 1336770; - r->in.req.req5.unknown4 = 0; - r->in.req.req5.h1 = 0; + r->in.req.req5.extended_op = DRSUAPI_EXOP_NONE; + r->in.req.req5.fsmo_info = 0; } req = dcerpc_drsuapi_DsGetNCChanges_send(drsuapi->pipe, r, r); diff --git a/source4/libnet/libnet_become_dc.c b/source4/libnet/libnet_become_dc.c index 1c4c1d0732..d3eeebe214 100644 --- a/source4/libnet/libnet_become_dc.c +++ b/source4/libnet/libnet_become_dc.c @@ -2392,10 +2392,10 @@ static void becomeDC_drsuapi_pull_partition_send(struct libnet_BecomeDC_state *s r->in.req.req8.replica_flags = partition->replica_flags; r->in.req.req8.max_object_count = 133; r->in.req.req8.max_ndr_size = 1336811; - r->in.req.req8.unknown4 = 0; - r->in.req.req8.h1 = 0; - r->in.req.req8.unique_ptr1 = 0; - r->in.req.req8.unique_ptr2 = 0; + r->in.req.req8.extended_op = DRSUAPI_EXOP_NONE; + r->in.req.req8.fsmo_info = 0; + r->in.req.req8.partial_attribute_set = NULL; + r->in.req.req8.partial_attribute_set_ex = NULL; r->in.req.req8.mapping_ctr.num_mappings = 0; r->in.req.req8.mapping_ctr.mappings = NULL; } else { @@ -2408,8 +2408,8 @@ static void becomeDC_drsuapi_pull_partition_send(struct libnet_BecomeDC_state *s r->in.req.req5.replica_flags = partition->replica_flags; r->in.req.req5.max_object_count = 133; r->in.req.req5.max_ndr_size = 1336770; - r->in.req.req5.unknown4 = 0; - r->in.req.req5.h1 = 0; + r->in.req.req5.extended_op = DRSUAPI_EXOP_NONE; + r->in.req.req5.fsmo_info = 0; } /* diff --git a/source4/torture/rpc/drsuapi.c b/source4/torture/rpc/drsuapi.c index bbdb73ed55..e5cb3d7ddf 100644 --- a/source4/torture/rpc/drsuapi.c +++ b/source4/torture/rpc/drsuapi.c @@ -549,8 +549,8 @@ static bool test_DsGetNCChanges(struct dcerpc_pipe *p, struct torture_context *t } r.in.req.req5.max_object_count = 0; r.in.req.req5.max_ndr_size = 0; - r.in.req.req5.unknown4 = 0; - r.in.req.req5.h1 = 0; + r.in.req.req5.extended_op = DRSUAPI_EXOP_NONE; + r.in.req.req5.fsmo_info = 0; break; case 8: @@ -579,10 +579,10 @@ static bool test_DsGetNCChanges(struct dcerpc_pipe *p, struct torture_context *t ; r.in.req.req8.max_object_count = 402; r.in.req.req8.max_ndr_size = 402116; - r.in.req.req8.unknown4 = 0; - r.in.req.req8.h1 = 0; - r.in.req.req8.unique_ptr1 = 0; - r.in.req.req8.unique_ptr2 = 0; + r.in.req.req8.extended_op = DRSUAPI_EXOP_NONE; + r.in.req.req8.fsmo_info = 0; + r.in.req.req8.partial_attribute_set = NULL; + r.in.req.req8.partial_attribute_set_ex = NULL; r.in.req.req8.mapping_ctr.num_mappings = 0; r.in.req.req8.mapping_ctr.mappings = NULL; diff --git a/source4/torture/rpc/dssync.c b/source4/torture/rpc/dssync.c index 989a1faf27..ec527687c0 100644 --- a/source4/torture/rpc/dssync.c +++ b/source4/torture/rpc/dssync.c @@ -623,8 +623,8 @@ static bool test_FetchData(struct torture_context *tctx, struct DsSyncTest *ctx) ; r.in.req.req5.max_object_count = 133; r.in.req.req5.max_ndr_size = 1336770; - r.in.req.req5.unknown4 = 0; - r.in.req.req5.h1 = 0; + r.in.req.req5.extended_op = DRSUAPI_EXOP_NONE; + r.in.req.req5.fsmo_info = 0; break; case 8: @@ -655,10 +655,10 @@ static bool test_FetchData(struct torture_context *tctx, struct DsSyncTest *ctx) r.in.req.req8.max_object_count = 402; r.in.req.req8.max_ndr_size = 402116; - r.in.req.req8.unknown4 = 0; - r.in.req.req8.h1 = 0; - r.in.req.req8.unique_ptr1 = 0; - r.in.req.req8.unique_ptr2 = 0; + r.in.req.req8.extended_op = DRSUAPI_EXOP_NONE; + r.in.req.req8.fsmo_info = 0; + r.in.req.req8.partial_attribute_set = NULL; + r.in.req.req8.partial_attribute_set_ex = NULL; r.in.req.req8.mapping_ctr.num_mappings = 0; r.in.req.req8.mapping_ctr.mappings = NULL; -- cgit From 5767b578a0ad9db91bb5f4ca5e74615c663034a7 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 30 Jun 2008 17:15:49 +0200 Subject: schema_fsmo: only set module->private_data in case we keep the struct for a long time metze (This used to be commit 82940f6ca120026378e6deb49a07becb2d581f45) --- source4/dsdb/samdb/ldb_modules/schema_fsmo.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source4') diff --git a/source4/dsdb/samdb/ldb_modules/schema_fsmo.c b/source4/dsdb/samdb/ldb_modules/schema_fsmo.c index 8ceeba9804..bc1e60abb2 100644 --- a/source4/dsdb/samdb/ldb_modules/schema_fsmo.c +++ b/source4/dsdb/samdb/ldb_modules/schema_fsmo.c @@ -54,6 +54,8 @@ static int schema_fsmo_init(struct ldb_module *module) NULL }; + module->private_data = NULL; + if (dsdb_get_schema(module->ldb)) { return ldb_next_init(module); } @@ -77,7 +79,6 @@ static int schema_fsmo_init(struct ldb_module *module) ldb_oom(module->ldb); return LDB_ERR_OPERATIONS_ERROR; } - module->private_data = schema_fsmo; schema = dsdb_new_schema(mem_ctx, lp_iconv_convenience(ldb_get_opaque(module->ldb, "loadparm"))); if (!schema) { @@ -246,7 +247,7 @@ static int schema_fsmo_init(struct ldb_module *module) return LDB_ERR_OPERATIONS_ERROR; } - talloc_steal(module, schema_fsmo); + module->private_data = talloc_steal(module, schema_fsmo); ldb_debug(module->ldb, LDB_DEBUG_TRACE, "schema_fsmo_init: we are master: %s\n", -- cgit