[SCM] Samba Shared Repository - branch master updated
Matthieu Patou
mat at samba.org
Tue Jul 26 16:47:02 MDT 2011
The branch, master has been updated
via a5ba418 s4-dcerpc: Do not return linked attribute on deleted objects it makes W2k8R2 loops when joining s4 domains
via 326e2dd s4-dsdb: Improve the calculation of system flags according to 3.1.1.5.2.4
via 5f1f153 s4-upgradeprovision: Detect recent provision in a more reliable way
from c79e08f s3 swat: Create random nonce in CGI mode
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit a5ba41881c393d075238a537aeca273df446389b
Author: Matthieu Patou <mat at matws.net>
Date: Tue Jul 19 00:59:20 2011 +0400
s4-dcerpc: Do not return linked attribute on deleted objects it makes W2k8R2 loops when joining s4 domains
Autobuild-User: Matthieu Patou <mat at samba.org>
Autobuild-Date: Wed Jul 27 00:46:56 CEST 2011 on sn-devel-104
commit 326e2dd681c7210375a9b6e3b3e512dbab94bf7e
Author: Matthieu Patou <mat at matws.net>
Date: Mon Jul 25 17:31:03 2011 +0400
s4-dsdb: Improve the calculation of system flags according to 3.1.1.5.2.4
commit 5f1f15399843760d3c3cf98022c76017a3a415c8
Author: Matthieu Patou <mat at matws.net>
Date: Thu Jul 21 00:50:38 2011 +0400
s4-upgradeprovision: Detect recent provision in a more reliable way
-----------------------------------------------------------------------
Summary of changes:
source4/dsdb/samdb/ldb_modules/objectclass.c | 5 +++--
source4/rpc_server/drsuapi/getncchanges.c | 16 +++++++++++++++-
source4/scripting/bin/upgradeprovision | 13 ++++++++++++-
3 files changed, 30 insertions(+), 4 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source4/dsdb/samdb/ldb_modules/objectclass.c b/source4/dsdb/samdb/ldb_modules/objectclass.c
index 7ae90d3..ab1766f 100644
--- a/source4/dsdb/samdb/ldb_modules/objectclass.c
+++ b/source4/dsdb/samdb/ldb_modules/objectclass.c
@@ -734,14 +734,15 @@ static int objectclass_do_add(struct oc_context *ac)
} else if (ldb_attr_cmp(objectclass->lDAPDisplayName, "site") == 0
|| ldb_attr_cmp(objectclass->lDAPDisplayName, "serversContainer") == 0
|| ldb_attr_cmp(objectclass->lDAPDisplayName, "nTDSDSA") == 0) {
+ if (ldb_attr_cmp(objectclass->lDAPDisplayName, "site") == 0)
+ systemFlags |= (int32_t)(SYSTEM_FLAG_CONFIG_ALLOW_RENAME);
systemFlags |= (int32_t)(SYSTEM_FLAG_DISALLOW_MOVE_ON_DELETE);
-
} else if (ldb_attr_cmp(objectclass->lDAPDisplayName, "siteLink") == 0
+ || ldb_attr_cmp(objectclass->lDAPDisplayName, "subnet") == 0
|| ldb_attr_cmp(objectclass->lDAPDisplayName, "siteLinkBridge") == 0
|| ldb_attr_cmp(objectclass->lDAPDisplayName, "nTDSConnection") == 0) {
systemFlags |= (int32_t)(SYSTEM_FLAG_CONFIG_ALLOW_RENAME);
}
-
/* TODO: If parent object is site or subnet, also add (SYSTEM_FLAG_CONFIG_ALLOW_RENAME) */
if (el || systemFlags != 0) {
diff --git a/source4/rpc_server/drsuapi/getncchanges.c b/source4/rpc_server/drsuapi/getncchanges.c
index dc50fc0..2abab78 100644
--- a/source4/rpc_server/drsuapi/getncchanges.c
+++ b/source4/rpc_server/drsuapi/getncchanges.c
@@ -362,7 +362,21 @@ static WERROR get_nc_changes_add_la(TALLOC_CTX *mem_ctx,
struct GUID guid;
struct ldb_dn *tdn;
int ret;
-
+ const char *v;
+
+ v = ldb_msg_find_attr_as_string(msg, "isDeleted", "false");
+ if (strncasecmp(v, "true", 4) == 0) {
+ v = ldb_msg_find_attr_as_string(msg, "isRecycled", "false");
+ /*
+ * Do not skip link when the object is just deleted (isRecycled not present)
+ * Do it for tomstones or recycled ones
+ */
+ if (strncasecmp(v, "true", 4) == 0) {
+ DEBUG(2, (" object %s is deleted, not returning linked attribute !\n",
+ ldb_dn_get_linearized(msg->dn)));
+ return WERR_OK;
+ }
+ }
status = dsdb_get_extended_dn_guid(dsdb_dn->dn, &guid, "GUID");
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0,(__location__ " Unable to extract GUID in linked attribute '%s' in '%s'\n",
diff --git a/source4/scripting/bin/upgradeprovision b/source4/scripting/bin/upgradeprovision
index 54f3cf1..af97964 100755
--- a/source4/scripting/bin/upgradeprovision
+++ b/source4/scripting/bin/upgradeprovision
@@ -1346,6 +1346,16 @@ def rebuild_sd(samdb, names):
message(ERROR, "On %s bad stuff %s" % (str(delta.dn),badsd.as_sddl(names.domainsid)))
return
+def hasATProvision(samdb):
+ entry = samdb.search(expression="dn=@PROVISION", base = "",
+ scope=SCOPE_SUBTREE,
+ attrs=["dn"])
+
+ if entry != None and len(entry) == 1:
+ return True
+ else:
+ return False
+
def removeProvisionUSN(samdb):
attrs = [samba.provision.LAST_PROVISION_USN_ATTRIBUTE, "dn"]
entry = samdb.search(expression="dn=@PROVISION", base = "",
@@ -1793,7 +1803,8 @@ if __name__ == '__main__':
new_ldbs.groupedCommit()
deltaattr = None
# 11)
- if re.match(".*alpha((9)|(\d\d+)).*", str(oem)):
+ message(GUESS, oem)
+ if hasATProvision(ldbs.sam) or re.match(".*alpha((9)|(\d\d+)).*", str(oem)):
# 11) A
# Starting from alpha9 we can consider that the structure is quite ok
# and that we should do only dela
--
Samba Shared Repository
More information about the samba-cvs
mailing list