[SCM] Samba Shared Repository - branch master updated
Andrew Tridgell
tridge at samba.org
Mon Apr 26 03:07:36 MDT 2010
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 <tridge at 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 <abartlet at samba.org>
commit a31c711ba7dcd7516fd7b4de8c602a2fc30672db
Author: Andrew Tridgell <tridge at 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 <abartlet at samba.org>
commit 6ee1c503bf90abbea137ce789ce5a8a54b437629
Author: Andrew Tridgell <tridge at 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 <abartlet at samba.org>
commit 159de40b0b5c2c3efc7bd4de83a15dc63299b730
Author: Andrew Tridgell <tridge at 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 <abartlet at samba.org>
commit f66fcd96087fc0a65a214c0fa62b03048ff0c6d9
Author: Andrew Tridgell <tridge at 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 <tridge at 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 <abartlet at 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
More information about the samba-cvs
mailing list