The branch, master has been updated via 5ce1dbf... s4-ddb: don't create partitions with the UNINSTANT flag set via a31c711... s4-drs: allow getncchanges requests to non WRIT_REP partitions for extended ops via 6ee1c50... s4-drs: don't send uninstantiated objects in getncchanges via 159de40... s4-drepl: don't send an UpdateRefs unless its a plain replication via f66fcd9... build: cope with realname for install of non-python libs via 267e0b3... s4-drs: make links to foreign partitions non-fatal from 0a47bf5... build: automatically run autogen-waf.sh when needed
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 5ce1dbf2e328b8bf9987746bbd9ea10e6db58760 Author: Andrew Tridgell <tri...@samba.org> Date: Mon Apr 26 15:46:37 2010 +1000 s4-ddb: don't create partitions with the UNINSTANT flag set these partitions and not on the server we are replicating from. Also check for deleted partitions. Pair-Programmed-With: Andrew Bartlett <abart...@samba.org> commit a31c711ba7dcd7516fd7b4de8c602a2fc30672db Author: Andrew Tridgell <tri...@samba.org> Date: Mon Apr 26 16:44:44 2010 +1000 s4-drs: allow getncchanges requests to non WRIT_REP partitions for extended ops Needed for RID allocation Pair-Programmed-With: Andrew Bartlett <abart...@samba.org> commit 6ee1c503bf90abbea137ce789ce5a8a54b437629 Author: Andrew Tridgell <tri...@samba.org> Date: Mon Apr 26 17:02:25 2010 +1000 s4-drs: don't send uninstantiated objects in getncchanges This includes deleted partitions Pair-Programmed-With: Andrew Bartlett <abart...@samba.org> commit 159de40b0b5c2c3efc7bd4de83a15dc63299b730 Author: Andrew Tridgell <tri...@samba.org> Date: Mon Apr 26 18:43:46 2010 +1000 s4-drepl: don't send an UpdateRefs unless its a plain replication Pair-Programmed-With: Andrew Bartlett <abart...@samba.org> commit f66fcd96087fc0a65a214c0fa62b03048ff0c6d9 Author: Andrew Tridgell <tri...@samba.org> Date: Mon Apr 26 19:04:33 2010 +1000 build: cope with realname for install of non-python libs this fixes the install of mit_samba.so commit 267e0b361693a94be258a21b2b305c5a97de3dda Author: Andrew Tridgell <tri...@samba.org> Date: Mon Apr 26 14:39:15 2010 +1000 s4-drs: make links to foreign partitions non-fatal DN links outside the set of partitions we are replication should be allowed. Pair-Programmed-With: Andrew Bartlett <abart...@samba.org> ----------------------------------------------------------------------- Summary of changes: buildtools/wafsamba/samba_install.py | 5 ++++- buildtools/wafsamba/wafsamba.py | 5 ++++- source4/dsdb/repl/drepl_out_helpers.c | 7 +++++-- source4/dsdb/samdb/ldb_modules/new_partition.c | 15 ++++++++++++++- source4/dsdb/samdb/ldb_modules/repl_meta_data.c | 14 ++++++-------- source4/rpc_server/drsuapi/getncchanges.c | 5 +++++ 6 files changed, 38 insertions(+), 13 deletions(-) Changeset truncated at 500 lines: diff --git a/buildtools/wafsamba/samba_install.py b/buildtools/wafsamba/samba_install.py index e2db589..55aab26 100644 --- a/buildtools/wafsamba/samba_install.py +++ b/buildtools/wafsamba/samba_install.py @@ -87,7 +87,10 @@ def install_library(self): if self.samba_realname: install_name = self.samba_realname install_link = None - inst_name = t.target + '.so' + if getattr(self, 'samba_type', None) == 'PYTHON': + inst_name = '%s.so' % t.target + else: + inst_name = 'lib%s.so' % t.target elif self.vnum: vnum_base = self.vnum.split('.')[0] install_name = 'lib%s.so.%s' % (self.target, self.vnum) diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py index 36f8777..6d6416b 100644 --- a/buildtools/wafsamba/wafsamba.py +++ b/buildtools/wafsamba/wafsamba.py @@ -161,7 +161,7 @@ def SAMBA_LIBRARY(bld, libname, source, deps = TO_LIST(deps) deps.append(obj_target) - if target_type == 'PYTHON': + if target_type == 'PYTHON' or realname: bundled_name = libname else: bundled_name = BUNDLED_NAME(bld, libname, bundled_extension) @@ -197,6 +197,9 @@ def SAMBA_LIBRARY(bld, libname, source, abi_match = abi_match ) + if realname and not link_name: + link_name = 'shared/%s' % realname + if link_name: t.link_name = link_name diff --git a/source4/dsdb/repl/drepl_out_helpers.c b/source4/dsdb/repl/drepl_out_helpers.c index 60dccff..52b519c 100644 --- a/source4/dsdb/repl/drepl_out_helpers.c +++ b/source4/dsdb/repl/drepl_out_helpers.c @@ -272,7 +272,8 @@ static void dreplsrv_op_pull_source_get_changes_trigger(struct tevent_req *req) struct drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; struct tevent_req *subreq; - if ((rf1->replica_flags & DRSUAPI_DRS_WRIT_REP) == 0) { + if ((rf1->replica_flags & DRSUAPI_DRS_WRIT_REP) == 0 && + state->op->extended_op == DRSUAPI_EXOP_NONE) { return; } @@ -527,7 +528,9 @@ static void dreplsrv_op_pull_source_apply_changes_trigger(struct tevent_req *req we join the domain, but they quickly expire. We do it here so we can use the already established DRSUAPI pipe */ - dreplsrv_update_refs_trigger(req); + if (state->op->extended_op == DRSUAPI_EXOP_NONE) { + dreplsrv_update_refs_trigger(req); + } } static void dreplsrv_update_refs_done(struct tevent_req *subreq); diff --git a/source4/dsdb/samdb/ldb_modules/new_partition.c b/source4/dsdb/samdb/ldb_modules/new_partition.c index 47394f4..a7de846 100644 --- a/source4/dsdb/samdb/ldb_modules/new_partition.c +++ b/source4/dsdb/samdb/ldb_modules/new_partition.c @@ -154,7 +154,20 @@ static int new_partition_add(struct ldb_module *module, struct ldb_request *req) /* This needs to be 'static' to ensure it does not move, and is not on the stack */ static const char *no_attrs[] = { NULL }; unsigned int instanceType = ldb_msg_find_attr_as_uint(req->op.add.message, "instanceType", 0); - if (!(instanceType & INSTANCE_TYPE_IS_NC_HEAD)) { + if (!(instanceType & INSTANCE_TYPE_IS_NC_HEAD) || + (instanceType & INSTANCE_TYPE_UNINSTANT)) { + return ldb_next_request(module, req); + } + + if (instanceType & INSTANCE_TYPE_UNINSTANT) { + DEBUG(0,(__location__ ": Skipping uninstantiated partition %s\n", + ldb_dn_get_linearized(req->op.add.message->dn))); + return ldb_next_request(module, req); + } + + if (ldb_msg_find_attr_as_bool(req->op.add.message, "isDeleted", false)) { + DEBUG(0,(__location__ ": Skipping deleted partition %s\n", + ldb_dn_get_linearized(req->op.add.message->dn))); return ldb_next_request(module, req); } diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c index efb44bf..9dcf24a 100644 --- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c +++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c @@ -213,10 +213,9 @@ static int replmd_process_backlink(struct ldb_module *module, struct la_backlink */ ret = dsdb_module_dn_by_guid(module, tmp_ctx, &bl->target_guid, &target_dn); if (ret != LDB_SUCCESS) { - ldb_asprintf_errstring(ldb, "Failed to find target DN for linked attribute with GUID %s\n", - GUID_string(bl, &bl->target_guid)); - talloc_free(tmp_ctx); - return ret; + DEBUG(2,(__location__ ": WARNING: Failed to find target DN for linked attribute with GUID %s\n", + GUID_string(bl, &bl->target_guid))); + return LDB_SUCCESS; } ret = dsdb_module_dn_by_guid(module, tmp_ctx, &bl->forward_guid, &source_dn); @@ -3720,10 +3719,9 @@ linked_attributes[0]: old DN value */ ret = dsdb_module_dn_by_guid(module, dsdb_dn, &guid, &dsdb_dn->dn); if (ret != LDB_SUCCESS) { - ldb_asprintf_errstring(ldb, __location__ ": Failed to re-resolve GUID %s", - GUID_string(tmp_ctx, &guid)); - talloc_free(tmp_ctx); - return ret; + DEBUG(2,(__location__ ": WARNING: Failed to re-resolve GUID %s - using %s", + GUID_string(tmp_ctx, &guid), + ldb_dn_get_linearized(dsdb_dn->dn))); } /* see if this link already exists */ diff --git a/source4/rpc_server/drsuapi/getncchanges.c b/source4/rpc_server/drsuapi/getncchanges.c index 6a8ab3b..90407a3 100644 --- a/source4/rpc_server/drsuapi/getncchanges.c +++ b/source4/rpc_server/drsuapi/getncchanges.c @@ -132,6 +132,11 @@ static WERROR get_nc_changes_build_object(struct drsuapi_DsReplicaObjectListItem return WERR_OK; } + if (instanceType & INSTANCE_TYPE_UNINSTANT) { + /* don't send uninstantiated objects */ + return WERR_OK; + } + ndr_err = ndr_pull_struct_blob(md_value, obj, lp_iconv_convenience(ldb_get_opaque(sam_ctx, "loadparm")), &md, (ndr_pull_flags_fn_t)ndr_pull_replPropertyMetaDataBlob); -- Samba Shared Repository