[SCM] Samba Shared Repository - branch master updated - tevent-0-9-8-397-g0c202e4

Matthias Dieter Wallnöfer mdw at samba.org
Thu Sep 17 04:52:20 MDT 2009


The branch, master has been updated
       via  0c202e403f72ccb1c7081197e83094498fa390b0 (commit)
       via  bfb3eaabe7f716ade5821b6bc1e176171600e2a8 (commit)
       via  7c71370a0f3b23fe699f378f24282987681d7b01 (commit)
       via  f6a29f7dd368acf3f053fc4e1330c7314fc3e41f (commit)
      from  5f58119fe5b313fe7b0cb9426ea82ea400e09482 (commit)

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


- Log -----------------------------------------------------------------
commit 0c202e403f72ccb1c7081197e83094498fa390b0
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date:   Sun Sep 13 12:37:41 2009 +0200

    s4/domain behaviour flags: Fix them up in various locations
    
    Additional notes:
    - Bump the level to Windows Server 2008 R2 (we should support always the latest
      version - if we provision ourself)
    - In "descriptor.c" the check for the "domainFunctionality" level shouldn't be
      needed: ACL owner groups (not owner user) are supported since Windows 2000
      Server (first AD edition)
      - I took the argument from: http://support.microsoft.com/kb/329194

commit bfb3eaabe7f716ade5821b6bc1e176171600e2a8
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date:   Wed Sep 9 21:24:34 2009 +0200

    s4/python: flags
    
    - Introduce the "userAccountControl", "groupType" and "sAMAccountType" flags
    - Corrects the "domain/forestFunctionality" and "domainControllerFunctionality" flags

commit 7c71370a0f3b23fe699f378f24282987681d7b01
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date:   Sun Sep 13 11:01:44 2009 +0200

    libds/common/flags: various
    
    - Reorders the header file to have the order "userAccountFlags", "groupType",
      "sAMAccountType" (matches the order in the flag_mapping.c and samldb module)
    - Fixes the group account flags properly up
    - Fixes the flags for "domain/forestFunctionality" and "domainControllerFunctionality"
      up

commit f6a29f7dd368acf3f053fc4e1330c7314fc3e41f
Author: Matt Kraai <mkraai at beckman.com>
Date:   Wed Sep 16 14:23:16 2009 -0700

    Port the Samba 3 shm_setup to QNX.

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

Summary of changes:
 libds/common/flag_mapping.c                    |   11 +++--
 libds/common/flags.h                           |   53 +++++++++++++-----------
 source3/torture/torture.c                      |   18 ++++++++
 source4/dsdb/samdb/ldb_modules/descriptor.c    |   10 +----
 source4/dsdb/samdb/ldb_modules/password_hash.c |    3 +-
 source4/libnet/libnet_become_dc.c              |    2 +-
 source4/scripting/python/pyglue.c              |   46 ++++++++++++++++++--
 source4/scripting/python/samba/__init__.py     |   46 +++++++++++++++++++--
 source4/scripting/python/samba/provision.py    |   11 +++--
 9 files changed, 147 insertions(+), 53 deletions(-)


Changeset truncated at 500 lines:

diff --git a/libds/common/flag_mapping.c b/libds/common/flag_mapping.c
index dc7d801..429ccac 100644
--- a/libds/common/flag_mapping.c
+++ b/libds/common/flag_mapping.c
@@ -105,21 +105,24 @@ uint32_t ds_gtype2atype(uint32_t gtype)
 		case GTYPE_SECURITY_BUILTIN_LOCAL_GROUP:
 			atype = ATYPE_SECURITY_LOCAL_GROUP;
 			break;
+		case GTYPE_SECURITY_GLOBAL_GROUP:
+			atype = ATYPE_SECURITY_GLOBAL_GROUP;
+			break;
 		case GTYPE_SECURITY_DOMAIN_LOCAL_GROUP:
 			atype = ATYPE_SECURITY_LOCAL_GROUP;
 			break;
-		case GTYPE_SECURITY_GLOBAL_GROUP:
-			atype = ATYPE_SECURITY_GLOBAL_GROUP;
+		case GTYPE_SECURITY_UNIVERSAL_GROUP:
+			atype = ATYPE_SECURITY_UNIVERSAL_GROUP;
 			break;
 
 		case GTYPE_DISTRIBUTION_GLOBAL_GROUP:
 			atype = ATYPE_DISTRIBUTION_GLOBAL_GROUP;
 			break;
 		case GTYPE_DISTRIBUTION_DOMAIN_LOCAL_GROUP:
-			atype = ATYPE_DISTRIBUTION_UNIVERSAL_GROUP;
+			atype = ATYPE_DISTRIBUTION_LOCAL_GROUP;
 			break;
 		case GTYPE_DISTRIBUTION_UNIVERSAL_GROUP:
-			atype = ATYPE_DISTRIBUTION_LOCAL_GROUP;
+			atype = ATYPE_DISTRIBUTION_UNIVERSAL_GROUP;
 			break;
 	}
 
diff --git a/libds/common/flags.h b/libds/common/flags.h
index 2b342af..dfdd603 100644
--- a/libds/common/flags.h
+++ b/libds/common/flags.h
@@ -18,7 +18,7 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-/* UserFlags for userAccountControl */
+/* User flags for "userAccountControl" */
 #define UF_SCRIPT	 			0x00000001  /* NT or Lan Manager Login script must be executed */
 #define UF_ACCOUNTDISABLE			0x00000002
 #define UF_00000004				0x00000004
@@ -84,21 +84,7 @@
 		UF_DONT_REQUIRE_PREAUTH \
 		)
 
-/* sAMAccountType */
-#define ATYPE_NORMAL_ACCOUNT			0x30000000 /* 805306368 */
-#define ATYPE_WORKSTATION_TRUST			0x30000001 /* 805306369 */
-#define ATYPE_INTERDOMAIN_TRUST			0x30000002 /* 805306370 */
-#define ATYPE_SECURITY_GLOBAL_GROUP		0x10000000 /* 268435456 */
-#define ATYPE_DISTRIBUTION_GLOBAL_GROUP		0x10000001 /* 268435457 */
-#define ATYPE_DISTRIBUTION_UNIVERSAL_GROUP	ATYPE_DISTRIBUTION_GLOBAL_GROUP
-#define ATYPE_SECURITY_LOCAL_GROUP		0x20000000 /* 536870912 */
-#define ATYPE_DISTRIBUTION_LOCAL_GROUP		0x20000001 /* 536870913 */
-
-#define ATYPE_ACCOUNT		ATYPE_NORMAL_ACCOUNT		/* 0x30000000 805306368 */
-#define ATYPE_GLOBAL_GROUP	ATYPE_SECURITY_GLOBAL_GROUP	/* 0x10000000 268435456 */
-#define ATYPE_LOCAL_GROUP	ATYPE_SECURITY_LOCAL_GROUP	/* 0x20000000 536870912 */
-
-/* groupType */
+/* Group flags for "groupType" */
 #define GROUP_TYPE_BUILTIN_LOCAL_GROUP		0x00000001
 #define GROUP_TYPE_ACCOUNT_GROUP		0x00000002
 #define GROUP_TYPE_RESOURCE_GROUP		0x00000004
@@ -132,6 +118,22 @@
 #define GTYPE_DISTRIBUTION_DOMAIN_LOCAL_GROUP	0x00000004	/* 4 */
 #define GTYPE_DISTRIBUTION_UNIVERSAL_GROUP	0x00000008	/* 8 */
 
+/* Account flags for "sAMAccountType" */
+#define ATYPE_NORMAL_ACCOUNT			0x30000000 /* 805306368 */
+#define ATYPE_WORKSTATION_TRUST			0x30000001 /* 805306369 */
+#define ATYPE_INTERDOMAIN_TRUST			0x30000002 /* 805306370 */
+#define ATYPE_SECURITY_GLOBAL_GROUP		0x10000000 /* 268435456 */
+#define ATYPE_SECURITY_LOCAL_GROUP		0x20000000 /* 536870912 */
+#define ATYPE_SECURITY_UNIVERSAL_GROUP		ATYPE_SECURITY_GLOBAL_GROUP
+#define ATYPE_DISTRIBUTION_GLOBAL_GROUP		0x10000001 /* 268435457 */
+#define ATYPE_DISTRIBUTION_LOCAL_GROUP		0x20000001 /* 536870913 */
+#define ATYPE_DISTRIBUTION_UNIVERSAL_GROUP	ATYPE_DISTRIBUTION_GLOBAL_GROUP
+
+#define ATYPE_ACCOUNT		ATYPE_NORMAL_ACCOUNT		/* 0x30000000 805306368 */
+#define ATYPE_GLOBAL_GROUP	ATYPE_SECURITY_GLOBAL_GROUP	/* 0x10000000 268435456 */
+#define ATYPE_LOCAL_GROUP	ATYPE_SECURITY_LOCAL_GROUP	/* 0x20000000 536870912 */
+
+/* "instanceType" */
 #define INSTANCE_TYPE_IS_NC_HEAD	0x00000001
 #define INSTANCE_TYPE_UNINSTANT		0x00000002
 #define INSTANCE_TYPE_WRITE		0x00000004
@@ -139,6 +141,7 @@
 #define INSTANCE_TYPE_NC_COMING		0x00000010
 #define INSTANCE_TYPE_NC_GOING		0x00000020
 
+/* "systemFlags" */
 #define SYSTEM_FLAG_CR_NTDS_NC			0x00000001
 #define SYSTEM_FLAG_CR_NTDS_DOMAIN		0x00000002
 #define SYSTEM_FLAG_CR_NTDS_NOT_GC_REPLICATED	0x00000004
@@ -152,6 +155,7 @@
 #define SYSTEM_FLAG_CONFIG_ALLOW_RENAME		0x40000000
 #define SYSTEM_FLAG_DISALLOW_DELTE		0x80000000
 
+/* "searchFlags" */
 #define SEARCH_FLAG_ATTINDEX		0x0000001
 #define SEARCH_FLAG_PDNTATTINDEX	0x0000002
 #define SEARCH_FLAG_ANR			0x0000004
@@ -163,15 +167,16 @@
 #define SEARCH_FLAG_NEVERVALUEAUDIT	0x0000100
 #define SEARCH_FLAG_RODC_ATTRIBUTE	0x0000200
 
-#define DS_BEHAVIOR_WIN2000		0
-#define DS_BEHAVIOR_WIN2003_INTERIM	1
-#define DS_BEHAVIOR_WIN2003		2
-#define DS_BEHAVIOR_WIN2008		3
-
-/* Settings for the domainFunctionality attribute in the rootDSE */
-
+/* "domainFunctionality", "forestFunctionality" in the rootDSE */
 #define DS_DOMAIN_FUNCTION_2000		0
-#define DS_DOMAIN_FUCNTION_2003_MIXED	1
+#define DS_DOMAIN_FUNCTION_2003_MIXED	1
 #define DS_DOMAIN_FUNCTION_2003		2
 #define DS_DOMAIN_FUNCTION_2008		3
+#define DS_DOMAIN_FUNCTION_2008_R2	4 
+
+/* "domainControllerFunctionality" in the rootDSE */
+#define DS_DC_FUNCTION_2000		0
+#define DS_DC_FUNCTION_2003		2
+#define DS_DC_FUNCTION_2008		3
+#define DS_DC_FUNCTION_2008_R2		4
 
diff --git a/source3/torture/torture.c b/source3/torture/torture.c
index ed592f1..98694ed 100644
--- a/source3/torture/torture.c
+++ b/source3/torture/torture.c
@@ -76,6 +76,23 @@ void *shm_setup(int size)
 	int shmid;
 	void *ret;
 
+#ifdef __QNXNTO__
+	shmid = shm_open("private", O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
+	if (shmid == -1) {
+		printf("can't get shared memory\n");
+		exit(1);
+	}
+	shm_unlink("private");
+	if (ftruncate(shmid, size) == -1) {
+		printf("can't set shared memory size\n");
+		exit(1);
+	}
+	ret = mmap(0, size, PROT_READ | PROT_WRITE, MAP_SHARED, shmid, 0);
+	if (ret == MAP_FAILED) {
+		printf("can't map shared memory\n");
+		exit(1);
+	}
+#else
 	shmid = shmget(IPC_PRIVATE, size, S_IRUSR | S_IWUSR);
 	if (shmid == -1) {
 		printf("can't get shared memory\n");
@@ -94,6 +111,7 @@ void *shm_setup(int size)
 	   See Stevens "advanced programming in unix env" for details
 	   */
 	shmctl(shmid, IPC_RMID, 0);
+#endif
 
 	return ret;
 }
diff --git a/source4/dsdb/samdb/ldb_modules/descriptor.c b/source4/dsdb/samdb/ldb_modules/descriptor.c
index a22cce7..2a72d32 100644
--- a/source4/dsdb/samdb/ldb_modules/descriptor.c
+++ b/source4/dsdb/samdb/ldb_modules/descriptor.c
@@ -134,15 +134,7 @@ static struct dom_sid *get_default_group(TALLOC_CTX *mem_ctx,
 					 struct ldb_context *ldb,
 					 struct dom_sid *dag)
 {
-	int *domainFunctionality;
-
-	domainFunctionality = talloc_get_type(ldb_get_opaque(ldb, "domainFunctionality"), int);
-
-	if (*domainFunctionality && (*domainFunctionality >= DS_BEHAVIOR_WIN2008)){
-		return dag;
-	}
-
-	return NULL;
+	return dag;
 }
 
 static DATA_BLOB *get_new_descriptor(struct ldb_module *module,
diff --git a/source4/dsdb/samdb/ldb_modules/password_hash.c b/source4/dsdb/samdb/ldb_modules/password_hash.c
index c7fa636..a04e524 100644
--- a/source4/dsdb/samdb/ldb_modules/password_hash.c
+++ b/source4/dsdb/samdb/ldb_modules/password_hash.c
@@ -1068,7 +1068,8 @@ static int setup_supplemental_field(struct setup_password_fields_io *io)
 	/* Per MS-SAMR 3.1.1.8.11.6 we create AES keys if our domain functionality level is 2008 or higher */
 	domainFunctionality = talloc_get_type(ldb_get_opaque(ldb, "domainFunctionality"), int);
 
-	do_newer_keys = *domainFunctionality && (*domainFunctionality >= DS_BEHAVIOR_WIN2008);
+	do_newer_keys = *domainFunctionality &&
+		(*domainFunctionality >= DS_DOMAIN_FUNCTION_2008);
 
 	if (io->domain->store_cleartext &&
 	    (io->u.user_account_control & UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED)) {
diff --git a/source4/libnet/libnet_become_dc.c b/source4/libnet/libnet_become_dc.c
index 9ba801b..94b639c 100644
--- a/source4/libnet/libnet_become_dc.c
+++ b/source4/libnet/libnet_become_dc.c
@@ -2101,7 +2101,7 @@ static void becomeDC_drsuapi1_add_entry_send(struct libnet_BecomeDC_state *s)
 		vd[0] = data_blob_talloc(vd, NULL, 4);
 		if (composite_nomem(vd[0].data, c)) return;
 
-		SIVAL(vd[0].data, 0, DS_BEHAVIOR_WIN2008);
+		SIVAL(vd[0].data, 0, DS_DC_FUNCTION_2008_R2);
 
 		vs[0].blob		= &vd[0];
 
diff --git a/source4/scripting/python/pyglue.c b/source4/scripting/python/pyglue.c
index 42c04c1..753f2df 100644
--- a/source4/scripting/python/pyglue.c
+++ b/source4/scripting/python/pyglue.c
@@ -508,10 +508,46 @@ void initglue(void)
 
 	PyModule_AddObject(m, "version", PyString_FromString(SAMBA_VERSION_STRING));
 
-	PyModule_AddObject(m, "DS_BEHAVIOR_WIN2000", PyInt_FromLong(DS_BEHAVIOR_WIN2000));
-	PyModule_AddObject(m, "DS_BEHAVIOR_WIN2003_INTERIM", PyInt_FromLong(DS_BEHAVIOR_WIN2003_INTERIM));
-	PyModule_AddObject(m, "DS_BEHAVIOR_WIN2003", PyInt_FromLong(DS_BEHAVIOR_WIN2003));
-	PyModule_AddObject(m, "DS_BEHAVIOR_WIN2008", PyInt_FromLong(DS_BEHAVIOR_WIN2008));
-
+	/* "userAccountControl" flags */
+	PyModule_AddObject(m, "UF_NORMAL_ACCOUNT", PyInt_FromLong(UF_NORMAL_ACCOUNT));
+	PyModule_AddObject(m, "UF_TEMP_DUPLICATE_ACCOUNT", PyInt_FromLong(UF_TEMP_DUPLICATE_ACCOUNT));
+	PyModule_AddObject(m, "UF_SERVER_TRUST_ACCOUNT", PyInt_FromLong(UF_SERVER_TRUST_ACCOUNT));
+	PyModule_AddObject(m, "UF_WORKSTATION_TRUST_ACCOUNT", PyInt_FromLong(UF_WORKSTATION_TRUST_ACCOUNT));
+	PyModule_AddObject(m, "UF_INTERDOMAIN_TRUST_ACCOUNT", PyInt_FromLong(UF_INTERDOMAIN_TRUST_ACCOUNT));
+	PyModule_AddObject(m, "UF_PASSWD_NOTREQD", PyInt_FromLong(UF_PASSWD_NOTREQD));
+	PyModule_AddObject(m, "UF_ACCOUNTDISABLE", PyInt_FromLong(UF_ACCOUNTDISABLE));
+
+	/* "groupType" flags */
+	PyModule_AddObject(m, "GTYPE_SECURITY_BUILTIN_LOCAL_GROUP", PyInt_FromLong(GTYPE_SECURITY_BUILTIN_LOCAL_GROUP));
+	PyModule_AddObject(m, "GTYPE_SECURITY_GLOBAL_GROUP", PyInt_FromLong(GTYPE_SECURITY_GLOBAL_GROUP));
+	PyModule_AddObject(m, "GTYPE_SECURITY_DOMAIN_LOCAL_GROUP", PyInt_FromLong(GTYPE_SECURITY_DOMAIN_LOCAL_GROUP));
+	PyModule_AddObject(m, "GTYPE_SECURITY_UNIVERSAL_GROUP", PyInt_FromLong(GTYPE_SECURITY_UNIVERSAL_GROUP));
+	PyModule_AddObject(m, "GTYPE_DISTRIBUTION_GLOBAL_GROUP", PyInt_FromLong(GTYPE_DISTRIBUTION_GLOBAL_GROUP));
+	PyModule_AddObject(m, "GTYPE_DISTRIBUTION_DOMAIN_LOCAL_GROUP", PyInt_FromLong(GTYPE_DISTRIBUTION_DOMAIN_LOCAL_GROUP));
+	PyModule_AddObject(m, "GTYPE_DISTRIBUTION_UNIVERSAL_GROUP", PyInt_FromLong(GTYPE_DISTRIBUTION_UNIVERSAL_GROUP));
+
+	/* "sAMAccountType" flags */
+	PyModule_AddObject(m, "ATYPE_NORMAL_ACCOUNT", PyInt_FromLong(ATYPE_NORMAL_ACCOUNT));
+	PyModule_AddObject(m, "ATYPE_WORKSTATION_TRUST", PyInt_FromLong(ATYPE_WORKSTATION_TRUST));
+	PyModule_AddObject(m, "ATYPE_INTERDOMAIN_TRUST", PyInt_FromLong(ATYPE_INTERDOMAIN_TRUST));
+	PyModule_AddObject(m, "ATYPE_SECURITY_GLOBAL_GROUP", PyInt_FromLong(ATYPE_SECURITY_GLOBAL_GROUP));
+	PyModule_AddObject(m, "ATYPE_SECURITY_LOCAL_GROUP", PyInt_FromLong(ATYPE_SECURITY_LOCAL_GROUP));
+	PyModule_AddObject(m, "ATYPE_SECURITY_UNIVERSAL_GROUP", PyInt_FromLong(ATYPE_SECURITY_UNIVERSAL_GROUP));
+	PyModule_AddObject(m, "ATYPE_DISTRIBUTION_GLOBAL_GROUP", PyInt_FromLong(ATYPE_DISTRIBUTION_GLOBAL_GROUP));
+	PyModule_AddObject(m, "ATYPE_DISTRIBUTION_LOCAL_GROUP", PyInt_FromLong(ATYPE_DISTRIBUTION_LOCAL_GROUP));
+	PyModule_AddObject(m, "ATYPE_DISTRIBUTION_UNIVERSAL_GROUP", PyInt_FromLong(ATYPE_DISTRIBUTION_UNIVERSAL_GROUP));
+
+	/* "domainFunctionality", "forestFunctionality" flags in the rootDSE */
+	PyModule_AddObject(m, "DS_DOMAIN_FUNCTION_2000", PyInt_FromLong(DS_DOMAIN_FUNCTION_2000));
+	PyModule_AddObject(m, "DS_DOMAIN_FUNCTION_2003_MIXED", PyInt_FromLong(DS_DOMAIN_FUNCTION_2003_MIXED));
+	PyModule_AddObject(m, "DS_DOMAIN_FUNCTION_2003", PyInt_FromLong(DS_DOMAIN_FUNCTION_2003));
+	PyModule_AddObject(m, "DS_DOMAIN_FUNCTION_2008", PyInt_FromLong(DS_DOMAIN_FUNCTION_2008));
+	PyModule_AddObject(m, "DS_DOMAIN_FUNCTION_2008_R2", PyInt_FromLong(DS_DOMAIN_FUNCTION_2008_R2));
+
+	/* "domainControllerFunctionality" flags in the rootDSE */
+	PyModule_AddObject(m, "DS_DC_FUNCTION_2000", PyInt_FromLong(DS_DC_FUNCTION_2000));
+	PyModule_AddObject(m, "DS_DC_FUNCTION_2003", PyInt_FromLong(DS_DC_FUNCTION_2003));
+	PyModule_AddObject(m, "DS_DC_FUNCTION_2008", PyInt_FromLong(DS_DC_FUNCTION_2008));
+	PyModule_AddObject(m, "DS_DC_FUNCTION_2008_R2", PyInt_FromLong(DS_DC_FUNCTION_2008_R2));
 }
 
diff --git a/source4/scripting/python/samba/__init__.py b/source4/scripting/python/samba/__init__.py
index fe365bd..82df496 100644
--- a/source4/scripting/python/samba/__init__.py
+++ b/source4/scripting/python/samba/__init__.py
@@ -345,7 +345,45 @@ def dom_sid_to_rid(sid_str):
 
 version = glue.version
 
-DS_BEHAVIOR_WIN2000 = glue.DS_BEHAVIOR_WIN2000
-DS_BEHAVIOR_WIN2003_INTERIM = glue.DS_BEHAVIOR_WIN2003_INTERIM
-DS_BEHAVIOR_WIN2003 = glue.DS_BEHAVIOR_WIN2003
-DS_BEHAVIOR_WIN2008 = glue.DS_BEHAVIOR_WIN2008
+# "userAccountControl" flags
+UF_NORMAL_ACCOUNT = glue.UF_NORMAL_ACCOUNT
+UF_TEMP_DUPLICATE_ACCOUNT = glue.UF_TEMP_DUPLICATE_ACCOUNT
+UF_SERVER_TRUST_ACCOUNT = glue.UF_SERVER_TRUST_ACCOUNT
+UF_WORKSTATION_TRUST_ACCOUNT = glue.UF_WORKSTATION_TRUST_ACCOUNT
+UF_INTERDOMAIN_TRUST_ACCOUNT = glue.UF_INTERDOMAIN_TRUST_ACCOUNT
+UF_PASSWD_NOTREQD = glue.UF_PASSWD_NOTREQD
+UF_ACCOUNTDISABLE = glue.UF_ACCOUNTDISABLE
+
+# "groupType" flags
+GTYPE_SECURITY_BUILTIN_LOCAL_GROUP = glue.GTYPE_SECURITY_BUILTIN_LOCAL_GROUP
+GTYPE_SECURITY_GLOBAL_GROUP = glue.GTYPE_SECURITY_GLOBAL_GROUP
+GTYPE_SECURITY_DOMAIN_LOCAL_GROUP = glue.GTYPE_SECURITY_DOMAIN_LOCAL_GROUP
+GTYPE_SECURITY_UNIVERSAL_GROUP = glue.GTYPE_SECURITY_UNIVERSAL_GROUP
+GTYPE_DISTRIBUTION_GLOBAL_GROUP = glue.GTYPE_DISTRIBUTION_GLOBAL_GROUP
+GTYPE_DISTRIBUTION_DOMAIN_LOCAL_GROUP = glue.GTYPE_DISTRIBUTION_DOMAIN_LOCAL_GROUP
+GTYPE_DISTRIBUTION_UNIVERSAL_GROUP = glue.GTYPE_DISTRIBUTION_UNIVERSAL_GROUP
+
+# "sAMAccountType" flags
+ATYPE_NORMAL_ACCOUNT = glue.ATYPE_NORMAL_ACCOUNT
+ATYPE_WORKSTATION_TRUST = glue.ATYPE_WORKSTATION_TRUST
+ATYPE_INTERDOMAIN_TRUST = glue.ATYPE_INTERDOMAIN_TRUST
+ATYPE_SECURITY_GLOBAL_GROUP = glue.ATYPE_SECURITY_GLOBAL_GROUP
+ATYPE_SECURITY_LOCAL_GROUP = glue.ATYPE_SECURITY_LOCAL_GROUP
+ATYPE_SECURITY_UNIVERSAL_GROUP = glue.ATYPE_SECURITY_UNIVERSAL_GROUP
+ATYPE_DISTRIBUTION_GLOBAL_GROUP = glue.ATYPE_DISTRIBUTION_GLOBAL_GROUP
+ATYPE_DISTRIBUTION_LOCAL_GROUP = glue.ATYPE_DISTRIBUTION_LOCAL_GROUP
+ATYPE_DISTRIBUTION_UNIVERSAL_GROUP = glue.ATYPE_DISTRIBUTION_UNIVERSAL_GROUP
+
+# "domainFunctionality", "forestFunctionality" flags in the rootDSE */
+DS_DOMAIN_FUNCTION_2000 = glue.DS_DOMAIN_FUNCTION_2000
+DS_DOMAIN_FUNCTION_2003_MIXED = glue.DS_DOMAIN_FUNCTION_2003_MIXED
+DS_DOMAIN_FUNCTION_2003 = glue.DS_DOMAIN_FUNCTION_2003
+DS_DOMAIN_FUNCTION_2008 = glue.DS_DOMAIN_FUNCTION_2008
+DS_DOMAIN_FUNCTION_2008_R2 = glue.DS_DOMAIN_FUNCTION_2008_R2
+
+# "domainControllerFunctionality" flags in the rootDSE */
+DS_DC_FUNCTION_2000 = glue.DS_DC_FUNCTION_2000
+DS_DC_FUNCTION_2003 = glue.DS_DC_FUNCTION_2003
+DS_DC_FUNCTION_2008 = glue.DS_DC_FUNCTION_2008
+DS_DC_FUNCTION_2008_R2 = glue.DS_DC_FUNCTION_2008_R2
+
diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py
index 8fef50c..cbb747b 100644
--- a/source4/scripting/python/samba/provision.py
+++ b/source4/scripting/python/samba/provision.py
@@ -42,8 +42,9 @@ import ldb
 import shutil
 from credentials import Credentials, DONT_USE_KERBEROS
 from auth import system_session, admin_session
-from samba import version, Ldb, substitute_var, valid_netbios_name, check_all_substituted, \
-  DS_BEHAVIOR_WIN2008
+from samba import version, Ldb, substitute_var, valid_netbios_name
+from samba import check_all_substituted
+from samba import DS_DOMAIN_FUNCTION_2008_R2, DS_DC_FUNCTION_2008_R2
 from samba.samdb import SamDB
 from samba.idmap import IDmapDB
 from samba.dcerpc import security
@@ -834,9 +835,9 @@ def setup_samdb(path, setup_path, session_info, credentials, lp,
     :note: This will wipe the main SAM database file!
     """
 
-    domainFunctionality = DS_BEHAVIOR_WIN2008
-    forestFunctionality = DS_BEHAVIOR_WIN2008
-    domainControllerFunctionality = DS_BEHAVIOR_WIN2008
+    domainFunctionality = DS_DOMAIN_FUNCTION_2008_R2
+    forestFunctionality = DS_DOMAIN_FUNCTION_2008_R2
+    domainControllerFunctionality = DS_DC_FUNCTION_2008_R2
 
     # Also wipes the database
     setup_samdb_partitions(path, setup_path, message=message, lp=lp,


-- 
Samba Shared Repository


More information about the samba-cvs mailing list