[SCM] Samba Shared Repository - branch master updated
Matthias Dieter Wallnöfer
mdw at samba.org
Sat Nov 27 08:04:13 MST 2010
The branch, master has been updated
via 258dc02 s4:role transfer - use always type "enum drepl_role_master" for role specifications
via d613f91 s4:samba3sam LDB module - correctly print out an unsigned value
via 2163c7a s4:samba3sam LDB module - make the "pw_uid"/"pw_gid" conversion a bit clearer
via e9f019e s4:dsdb tests - make use of "ldb.get_domain_sid()"
via 7545b5b s4:dsdb/tests/python/sam.py - we don't need the domain SID
via 02addbc s4:torture/drs/python/fsmo.py - fix comments and an error message
from 847b909 s4-samba-tool: removed old C implementation of samba-tool drs
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 258dc02a9db9280b43d336eecf4a63df790c1945
Author: Matthias Dieter Wallnöfer <mdw at samba.org>
Date: Sat Nov 27 14:40:53 2010 +0100
s4:role transfer - use always type "enum drepl_role_master" for role specifications
Autobuild-User: Matthias Dieter Wallnöfer <mdw at samba.org>
Autobuild-Date: Sat Nov 27 16:03:43 CET 2010 on sn-devel-104
commit d613f91a74be13cde375ad742b9dab3af2a75935
Author: Matthias Dieter Wallnöfer <mdw at samba.org>
Date: Sat Nov 27 14:17:53 2010 +0100
s4:samba3sam LDB module - correctly print out an unsigned value
Here we can print it out as unsigned since we are generating a string
attribute.
commit 2163c7a2985b750218661552760400ce485bf894
Author: Matthias Dieter Wallnöfer <mdw at samba.org>
Date: Sat Nov 27 14:07:31 2010 +0100
s4:samba3sam LDB module - make the "pw_uid"/"pw_gid" conversion a bit clearer
And remove the "long" specifier since at least on the major platforms
(Linux, BSD and Solaris) these types are defined as "uint32_t".
commit e9f019e28c267b35c1f5e5a232751c2ca920e1e5
Author: Matthias Dieter Wallnöfer <mdw at samba.org>
Date: Sat Nov 27 12:32:22 2010 +0100
s4:dsdb tests - make use of "ldb.get_domain_sid()"
commit 7545b5b3db77d3696fb725b1655b82c164647289
Author: Matthias Dieter Wallnöfer <mdw at samba.org>
Date: Sat Nov 27 12:21:59 2010 +0100
s4:dsdb/tests/python/sam.py - we don't need the domain SID
commit 02addbc40d0812d6398d4a9388c5879ae5bae284
Author: Matthias Dieter Wallnöfer <mdw at samba.org>
Date: Sat Nov 27 12:08:03 2010 +0100
s4:torture/drs/python/fsmo.py - fix comments and an error message
-----------------------------------------------------------------------
Summary of changes:
source4/dsdb/repl/drepl_fsmo.c | 5 ++---
source4/dsdb/repl/drepl_service.h | 2 ++
source4/dsdb/samdb/ldb_modules/rootdse.c | 2 +-
source4/dsdb/samdb/ldb_modules/samba3sam.c | 11 ++++++++---
source4/dsdb/tests/python/acl.py | 6 +-----
source4/dsdb/tests/python/ldap.py | 6 +-----
source4/dsdb/tests/python/ldap_syntaxes.py | 9 ++-------
source4/dsdb/tests/python/sam.py | 5 -----
source4/dsdb/tests/python/sec_descriptor.py | 6 +-----
source4/librpc/idl/irpc.idl | 2 +-
source4/torture/drs/python/fsmo.py | 6 +++---
11 files changed, 22 insertions(+), 38 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source4/dsdb/repl/drepl_fsmo.c b/source4/dsdb/repl/drepl_fsmo.c
index ad655f7..98bc1c1 100644
--- a/source4/dsdb/repl/drepl_fsmo.c
+++ b/source4/dsdb/repl/drepl_fsmo.c
@@ -30,8 +30,7 @@
#include "smbd/service.h"
#include "dsdb/repl/drepl_service.h"
#include "param/param.h"
-#include "lib/messaging/irpc.h"
-#include "librpc/gen_ndr/ndr_irpc.h"
+#include "librpc/gen_ndr/irpc.h"
static void drepl_role_callback(struct dreplsrv_service *service,
WERROR werr,
@@ -59,7 +58,7 @@ static bool fsmo_master_cmp(struct ldb_dn *ntds_dn, struct ldb_dn *role_owner_dn
see which role is we are asked to assume, initialize data and send request
*/
WERROR dreplsrv_fsmo_role_check(struct dreplsrv_service *service,
- uint32_t role)
+ enum drepl_role_master role)
{
struct ldb_dn *role_owner_dn, *fsmo_role_dn, *ntds_dn;
TALLOC_CTX *tmp_ctx = talloc_new(service);
diff --git a/source4/dsdb/repl/drepl_service.h b/source4/dsdb/repl/drepl_service.h
index 48b084f..ffff0bf 100644
--- a/source4/dsdb/repl/drepl_service.h
+++ b/source4/dsdb/repl/drepl_service.h
@@ -233,6 +233,8 @@ struct dreplsrv_service {
bool am_rodc;
};
+enum drepl_role_master;
+
#include "dsdb/repl/drepl_out_helpers.h"
#include "dsdb/repl/drepl_service_proto.h"
diff --git a/source4/dsdb/samdb/ldb_modules/rootdse.c b/source4/dsdb/samdb/ldb_modules/rootdse.c
index 5eac74f..e7ea765 100644
--- a/source4/dsdb/samdb/ldb_modules/rootdse.c
+++ b/source4/dsdb/samdb/ldb_modules/rootdse.c
@@ -1154,7 +1154,7 @@ static int rootdse_add(struct ldb_module *module, struct ldb_request *req)
static int rootdse_become_master(struct ldb_module *module,
struct ldb_request *req,
- uint32_t role)
+ enum drepl_role_master role)
{
struct drepl_takeFSMORole r;
struct messaging_context *msg;
diff --git a/source4/dsdb/samdb/ldb_modules/samba3sam.c b/source4/dsdb/samdb/ldb_modules/samba3sam.c
index 318d605..e9830c9 100644
--- a/source4/dsdb/samdb/ldb_modules/samba3sam.c
+++ b/source4/dsdb/samdb/ldb_modules/samba3sam.c
@@ -106,7 +106,8 @@ static void generate_sambaPrimaryGroupSID(struct ldb_module *module, const char
sidstring = dom_sid_string(remote_mp, sid);
talloc_free(sid);
- ldb_msg_add_fmt(remote_mp, "sambaPrimaryGroupSID", "%s-%d", sidstring, ldb_msg_find_attr_as_uint(local, "primaryGroupID", 0));
+ ldb_msg_add_fmt(remote_mp, "sambaPrimaryGroupSID", "%s-%u", sidstring,
+ ldb_msg_find_attr_as_uint(local, "primaryGroupID", 0));
talloc_free(sidstring);
}
@@ -151,7 +152,9 @@ static struct ldb_val lookup_gid(struct ldb_module *module, TALLOC_CTX *ctx, con
return *talloc_zero(ctx, struct ldb_val);
}
- retval.data = (uint8_t *)talloc_asprintf(ctx, "%ld", (unsigned long)pwd->pw_gid);
+ /* "pw_gid" is per POSIX definition "unsigned".
+ * But write it out as "signed" for LDAP compliance. */
+ retval.data = (uint8_t *)talloc_asprintf(ctx, "%d", (int) pwd->pw_gid);
retval.length = strlen((char *)retval.data);
return retval;
@@ -168,7 +171,9 @@ static struct ldb_val lookup_uid(struct ldb_module *module, TALLOC_CTX *ctx, con
return *talloc_zero(ctx, struct ldb_val);
}
- retval.data = (uint8_t *)talloc_asprintf(ctx, "%ld", (unsigned long)pwd->pw_uid);
+ /* "pw_uid" is per POSIX definition "unsigned".
+ * But write it out as "signed" for LDAP compliance. */
+ retval.data = (uint8_t *)talloc_asprintf(ctx, "%d", (int) pwd->pw_uid);
retval.length = strlen((char *)retval.data);
return retval;
diff --git a/source4/dsdb/tests/python/acl.py b/source4/dsdb/tests/python/acl.py
index 9a0e754..c540e7e 100755
--- a/source4/dsdb/tests/python/acl.py
+++ b/source4/dsdb/tests/python/acl.py
@@ -59,15 +59,11 @@ creds.set_gensec_features(creds.get_gensec_features() | gensec.FEATURE_SEAL)
class AclTests(samba.tests.TestCase):
- def find_domain_sid(self, ldb):
- res = ldb.search(base=self.base_dn, expression="(objectClass=*)", scope=SCOPE_BASE)
- return ndr_unpack(security.dom_sid,res[0]["objectSid"][0])
-
def setUp(self):
super(AclTests, self).setUp()
self.ldb_admin = ldb
self.base_dn = ldb.domain_dn()
- self.domain_sid = self.find_domain_sid(self.ldb_admin)
+ self.domain_sid = security.dom_sid(ldb.get_domain_sid())
self.user_pass = "samba123@"
self.configuration_dn = self.ldb_admin.get_config_basedn().get_linearized()
print "baseDN: %s" % self.base_dn
diff --git a/source4/dsdb/tests/python/ldap.py b/source4/dsdb/tests/python/ldap.py
index f11176b..f23de8d 100755
--- a/source4/dsdb/tests/python/ldap.py
+++ b/source4/dsdb/tests/python/ldap.py
@@ -62,10 +62,6 @@ creds = credopts.get_credentials(lp)
class BasicTests(unittest.TestCase):
- def find_domain_sid(self):
- res = self.ldb.search(base=self.base_dn, expression="(objectClass=*)", scope=SCOPE_BASE)
- return ndr_unpack( security.dom_sid,res[0]["objectSid"][0])
-
def setUp(self):
super(BasicTests, self).setUp()
self.ldb = ldb
@@ -73,7 +69,7 @@ class BasicTests(unittest.TestCase):
self.base_dn = ldb.domain_dn()
self.configuration_dn = ldb.get_config_basedn().get_linearized()
self.schema_dn = ldb.get_schema_basedn().get_linearized()
- self.domain_sid = self.find_domain_sid()
+ self.domain_sid = security.dom_sid(ldb.get_domain_sid())
print "baseDN: %s\n" % self.base_dn
diff --git a/source4/dsdb/tests/python/ldap_syntaxes.py b/source4/dsdb/tests/python/ldap_syntaxes.py
index f1f30c7..54198d7 100644
--- a/source4/dsdb/tests/python/ldap_syntaxes.py
+++ b/source4/dsdb/tests/python/ldap_syntaxes.py
@@ -51,10 +51,6 @@ creds = credopts.get_credentials(lp)
class SyntaxTests(unittest.TestCase):
- def _find_domain_sid(self):
- res = self.ldb.search(base=self.base_dn, expression="(objectClass=*)", scope=SCOPE_BASE)
- return ndr_unpack( security.dom_sid,res[0]["objectSid"][0])
-
def setUp(self):
super(SyntaxTests, self).setUp()
self.ldb = ldb
@@ -62,7 +58,6 @@ class SyntaxTests(unittest.TestCase):
self.schema_dn = ldb.get_schema_basedn().get_linearized()
self._setup_dn_string_test()
self._setup_dn_binary_test()
- self.domain_sid = self._find_domain_sid()
def _setup_dn_string_test(self):
"""Testing DN+String syntax"""
@@ -279,7 +274,7 @@ name: """ + object_name + """
# add object with SID instead of DN
object_name4 = "obj-DN-String4" + time.strftime("%s", time.gmtime())
ldif = self._get_object_ldif(object_name4, self.dn_string_class_name, self.dn_string_class_ldap_display_name,
- self.dn_string_attribute, ": S:5:ABCDE:<SID=%s>" % self.domain_sid)
+ self.dn_string_attribute, ": S:5:ABCDE:<SID=%s>" % self.ldb.get_domain_sid())
try:
self.ldb.add_ldif(ldif)
except LdbError, (num, _):
@@ -365,7 +360,7 @@ name: """ + object_name + """
# add object with SID instead of DN
object_name4 = "obj-DN-Binary4" + time.strftime("%s", time.gmtime())
ldif = self._get_object_ldif(object_name4, self.dn_binary_class_name, self.dn_binary_class_ldap_display_name,
- self.dn_binary_attribute, ": B:4:1234:<SID=%s>" % self.domain_sid)
+ self.dn_binary_attribute, ": B:4:1234:<SID=%s>" % self.ldb.get_domain_sid())
try:
self.ldb.add_ldif(ldif)
except LdbError, (num, _):
diff --git a/source4/dsdb/tests/python/sam.py b/source4/dsdb/tests/python/sam.py
index 836015b..9e50c62 100755
--- a/source4/dsdb/tests/python/sam.py
+++ b/source4/dsdb/tests/python/sam.py
@@ -66,15 +66,10 @@ creds = credopts.get_credentials(lp)
class SamTests(unittest.TestCase):
- def find_domain_sid(self):
- res = self.ldb.search(base=self.base_dn, expression="(objectClass=*)", scope=SCOPE_BASE)
- return ndr_unpack( security.dom_sid,res[0]["objectSid"][0])
-
def setUp(self):
super(SamTests, self).setUp()
self.ldb = ldb
self.base_dn = ldb.domain_dn()
- self.domain_sid = self.find_domain_sid()
print "baseDN: %s\n" % self.base_dn
diff --git a/source4/dsdb/tests/python/sec_descriptor.py b/source4/dsdb/tests/python/sec_descriptor.py
index 54e2444..17fed0e 100755
--- a/source4/dsdb/tests/python/sec_descriptor.py
+++ b/source4/dsdb/tests/python/sec_descriptor.py
@@ -60,10 +60,6 @@ creds.set_gensec_features(creds.get_gensec_features() | gensec.FEATURE_SEAL)
class DescriptorTests(samba.tests.TestCase):
- def find_domain_sid(self, ldb):
- res = ldb.search(base=self.base_dn, expression="(objectClass=*)", scope=SCOPE_BASE)
- return ndr_unpack( security.dom_sid,res[0]["objectSid"][0])
-
def get_users_domain_dn(self, name):
return "CN=%s,CN=Users,%s" % (name, self.base_dn)
@@ -188,7 +184,7 @@ showInAdvancedViewOnly: TRUE
self.base_dn = ldb.domain_dn()
self.configuration_dn = self.ldb_admin.get_config_basedn().get_linearized()
self.schema_dn = self.ldb_admin.get_schema_basedn().get_linearized()
- self.domain_sid = self.find_domain_sid(self.ldb_admin)
+ self.domain_sid = security.dom_sid(self.ldb_admin.get_domain_sid())
print "baseDN: %s" % self.base_dn
################################################################################################
diff --git a/source4/librpc/idl/irpc.idl b/source4/librpc/idl/irpc.idl
index 334c102..ed331c7 100644
--- a/source4/librpc/idl/irpc.idl
+++ b/source4/librpc/idl/irpc.idl
@@ -176,7 +176,7 @@ import "misc.idl", "security.idl", "nbt.idl", "netlogon.idl";
} drepl_role_master;
WERROR drepl_takeFSMORole(
- [in] uint32 role
+ [in] drepl_role_master role
);
/*
diff --git a/source4/torture/drs/python/fsmo.py b/source4/torture/drs/python/fsmo.py
index 067ee2a..30120cc 100644
--- a/source4/torture/drs/python/fsmo.py
+++ b/source4/torture/drs/python/fsmo.py
@@ -101,7 +101,7 @@ class DrsFsmoTestCase(samba.tests.TestCase):
cmd_line = "%s fsmo transfer --role=%s --host=ldap://%s:389 %s" % (net_cmd, role, DC,
cmd_line_auth)
ret = os.system(cmd_line)
- self.assertEquals(ret, 0, "Transferring schema to %s has failed!" % (DC))
+ self.assertEquals(ret, 0, "Transferring role %s to %s has failed!" % (role, DC))
pass
def _wait_for_role_transfer(self, ldb_dc, role_dn, master):
@@ -128,7 +128,7 @@ class DrsFsmoTestCase(samba.tests.TestCase):
def _role_transfer(self, role, role_dn):
"""Triggers transfer of role from DC1 to DC2
and vice versa so the role goes back to the original dc"""
- # dc2 gets the schema master role from dc1
+ # dc2 gets the role from dc1
print "Testing for %s role transfer from %s to %s" % (role, self.dnsname_dc1, self.dnsname_dc2)
self._net_fsmo_role_transfer(DC=self.dnsname_dc2, role=role)
@@ -139,7 +139,7 @@ class DrsFsmoTestCase(samba.tests.TestCase):
self.assertTrue(res,
"Transferring %s role to %s has failed, master is: %s!"%(role, self.dsServiceName_dc2, master))
- # dc1 gets back the schema master role from dc2
+ # dc1 gets back the role from dc2
print "Testing for %s role transfer from %s to %s" % (role, self.dnsname_dc2, self.dnsname_dc1)
self._net_fsmo_role_transfer(DC=self.dnsname_dc1, role=role)
# check if the role is transfered
--
Samba Shared Repository
More information about the samba-cvs
mailing list