[SCM] Samba Shared Repository - branch master updated

Michael Adam obnox at samba.org
Tue Jun 7 11:14:02 MDT 2011


The branch, master has been updated
       via  cd8dc47 s3:idmap_autorid: fail initialization if the domain is not "*"
       via  95d35dd s3:docs: fix the example in the idmap_autorid manpage to use "idmap config * : rangesize"
       via  b0b0b62 s3:idmap_autorid: use "idmap config <DOMAIN> : rangesize" instead of "autorid:rangesize"
       via  65490ea s3:idmap_autorid: add a talloc_stackframe() to idmap_autorid_initialize()
      from  632f672 s4-cldap: fixed the CLDAP response for IPv6 clients

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


- Log -----------------------------------------------------------------
commit cd8dc47bf17d2cdb1558dc6ab49320ba12af8f34
Author: Michael Adam <obnox at samba.org>
Date:   Tue Jun 7 15:53:49 2011 +0200

    s3:idmap_autorid: fail initialization if the domain is not "*"
    
    autorid can only be used as a backend for the default idmap configuration.
    
    Autobuild-User: Michael Adam <obnox at samba.org>
    Autobuild-Date: Tue Jun  7 19:13:18 CEST 2011 on sn-devel-104

commit 95d35dde9cecac120c0a9bcd06957cd3748b15a0
Author: Michael Adam <obnox at samba.org>
Date:   Tue Jun 7 15:21:34 2011 +0200

    s3:docs: fix the example in the idmap_autorid manpage to use "idmap config * : rangesize"

commit b0b0b625b588057c8c97371934bf21eb1fd985d8
Author: Michael Adam <obnox at samba.org>
Date:   Tue Jun 7 13:02:04 2011 +0200

    s3:idmap_autorid: use "idmap config <DOMAIN> : rangesize" instead of "autorid:rangesize"

commit 65490ea4e67bf82cf8fb0b8e4e74047c3f63c509
Author: Michael Adam <obnox at samba.org>
Date:   Tue Jun 7 15:16:24 2011 +0200

    s3:idmap_autorid: add a talloc_stackframe() to idmap_autorid_initialize()

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

Summary of changes:
 docs-xml/manpages-3/idmap_autorid.8.xml |    2 +-
 source3/winbindd/idmap_autorid.c        |   29 +++++++++++++++++++++++------
 2 files changed, 24 insertions(+), 7 deletions(-)


Changeset truncated at 500 lines:

diff --git a/docs-xml/manpages-3/idmap_autorid.8.xml b/docs-xml/manpages-3/idmap_autorid.8.xml
index ac66384..b5a9bde 100644
--- a/docs-xml/manpages-3/idmap_autorid.8.xml
+++ b/docs-xml/manpages-3/idmap_autorid.8.xml
@@ -109,7 +109,7 @@
 
 	idmap config * : backend = autorid
 	idmap config * : range = 1000000-19999999
-	autorid:rangesize = 1000000
+	idmap config * : rangesize = 1000000
 
 	idmap config TRUSTED : backend  = ad
 	idmap config TRUSTED : range    = 50000 - 99999
diff --git a/source3/winbindd/idmap_autorid.c b/source3/winbindd/idmap_autorid.c
index 1f4af33..80d8ed1 100644
--- a/source3/winbindd/idmap_autorid.c
+++ b/source3/winbindd/idmap_autorid.c
@@ -435,11 +435,22 @@ static NTSTATUS idmap_autorid_initialize(struct idmap_domain *dom)
 	struct autorid_global_config *storedconfig = NULL;
 	NTSTATUS status;
 	uint32_t hwm;
+	TALLOC_CTX *frame = talloc_stackframe();
+	char *config_option = NULL;
 
-	config = TALLOC_ZERO_P(dom, struct autorid_global_config);
+	if (!strequal(dom->name, "*")) {
+		DEBUG(0, ("idmap_autorid_initialize: Error: autorid configured "
+			  "for domain '%s'. But autorid can only be used for "
+			  "the default idmap configuration.\n", dom->name));
+		status = NT_STATUS_INVALID_PARAMETER;
+		goto error;
+	}
+
+	config = TALLOC_ZERO_P(frame, struct autorid_global_config);
 	if (!config) {
 		DEBUG(0, ("Out of memory!\n"));
-		return NT_STATUS_NO_MEMORY;
+		status = NT_STATUS_NO_MEMORY;
+		goto error;
 	}
 
 	status = idmap_autorid_db_init();
@@ -447,8 +458,15 @@ static NTSTATUS idmap_autorid_initialize(struct idmap_domain *dom)
 		goto error;
 	}
 
+	config_option = talloc_asprintf(frame, "idmap config %s", dom->name);
+	if (config_option == NULL) {
+		DEBUG(0, ("Out of memory!\n"));
+		status = NT_STATUS_NO_MEMORY;
+		goto error;
+	}
+
 	config->minvalue = dom->low_id;
-	config->rangesize = lp_parm_int(-1, "autorid", "rangesize", 100000);
+	config->rangesize = lp_parm_int(-1, config_option, "rangesize", 100000);
 
 	if (config->rangesize < 2000) {
 		DEBUG(1, ("autorid rangesize must be at least 2000\n"));
@@ -480,7 +498,7 @@ static NTSTATUS idmap_autorid_initialize(struct idmap_domain *dom)
 		   config->minvalue, config->rangesize, config->maxranges));
 
 	/* read previously stored config and current HWM */
-	storedconfig = idmap_autorid_loadconfig(talloc_tos());
+	storedconfig = idmap_autorid_loadconfig(frame);
 
 	if (!dbwrap_fetch_uint32(autorid_db, HWM, &hwm)) {
 		DEBUG(1, ("Fatal error while fetching current "
@@ -530,8 +548,7 @@ static NTSTATUS idmap_autorid_initialize(struct idmap_domain *dom)
 	return NT_STATUS_OK;
 
       error:
-	talloc_free(config);
-	talloc_free(storedconfig);
+	talloc_free(frame);
 
 	return status;
 }


-- 
Samba Shared Repository


More information about the samba-cvs mailing list