[SCM] Samba Shared Repository - branch master updated

Andrew Tridgell tridge at samba.org
Mon Nov 9 04:29:14 MST 2009


The branch, master has been updated
       via  932cda3... s4-samdb: remove the rDN size constraint of 64
      from  2b858c6... s4-hdb: go back to a separate samdb for the KDC

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 932cda330af01d8f749c68cf2cbe59c79c6c3ea8
Author: Andrew Tridgell <tridge at samba.org>
Date:   Mon Nov 9 22:19:52 2009 +1100

    s4-samdb: remove the rDN size constraint of 64
    
    This size constraint is not correct in it's current form, as windows
    does send us rDN values for CN with lengths longer than 64. Once we
    know how this constraint really works we can add it back in.

-----------------------------------------------------------------------

Summary of changes:
 source4/dsdb/samdb/ldb_modules/objectclass.c |   13 ++++++++++---
 source4/lib/ldb/tests/python/ldap.py         |    5 ++++-
 2 files changed, 14 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 003d673..ba28d42 100644
--- a/source4/dsdb/samdb/ldb_modules/objectclass.c
+++ b/source4/dsdb/samdb/ldb_modules/objectclass.c
@@ -347,12 +347,19 @@ static int fix_dn(TALLOC_CTX *mem_ctx,
 		return LDB_ERR_OPERATIONS_ERROR;
 	}
 
-	/* AD doesn't allow the rDN to be longer than 64 characters */
+
 	rdn_val = ldb_dn_get_rdn_val(newdn);
+
+#if 0
+	/* the rules for rDN length constraints are more complex than
+	this. Until we understand them we need to leave this
+	constraint out. Otherwise we break replication, as windows
+	does sometimes send us rDNs longer than 64 */
 	if (!rdn_val || rdn_val->length > 64) {
-		DEBUG(2,(__location__ ": rDN longer than 64 limit for '%s'\n", ldb_dn_get_linearized(newdn)));
-		return LDB_ERR_CONSTRAINT_VIOLATION;
+		DEBUG(2,(__location__ ": WARNING: rDN longer than 64 limit for '%s'\n", ldb_dn_get_linearized(newdn)));
 	}
+#endif
+
 
 	/* And replace it with CN=foo (we need the attribute in upper case */
 	return ldb_dn_set_component(*fixed_dn, 0, upper_rdn_attr, *rdn_val);
diff --git a/source4/lib/ldb/tests/python/ldap.py b/source4/lib/ldb/tests/python/ldap.py
index 118fb87..0c247cf 100755
--- a/source4/lib/ldb/tests/python/ldap.py
+++ b/source4/lib/ldb/tests/python/ldap.py
@@ -484,7 +484,10 @@ class BasicTests(unittest.TestCase):
 
         self.delete_force(self.ldb, "cn=ldaptestgroup,cn=users," + self.base_dn)
 
-    def test_largeRDN(self):
+
+        # this test needs to be disabled until we really understand
+        # what the rDN length constraints are
+    def DISABLED_test_largeRDN(self):
         """Testing large rDN (limit 64 characters)"""
         rdn = "CN=a012345678901234567890123456789012345678901234567890123456789012";
         self.delete_force(self.ldb, "%s,%s" % (rdn, self.base_dn))


-- 
Samba Shared Repository


More information about the samba-cvs mailing list