[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-unstable-1016-g3fc3fee

Michael Adam obnox at samba.org
Thu Jan 3 10:41:17 GMT 2008


The branch, v3-2-test has been updated
       via  3fc3fee88afd9e8b6232afc140a07090b4215c23 (commit)
       via  2d0c7fe44f075205db1713ef2d69006f7192c490 (commit)
       via  08056a2c8160a44d27744467da467faea9ba0686 (commit)
       via  de349bd26db3341815f6d8f6c18a5ca1fd664dca (commit)
      from  ff3f0006d167a9bca85919bf6115d73413554909 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit 3fc3fee88afd9e8b6232afc140a07090b4215c23
Author: Michael Adam <obnox at samba.org>
Date:   Thu Jan 3 11:35:21 2008 +0100

    Rename libnet_smbconf_reg_setvalue_internal() to libnet_smbconf_reg_set_value().
    
    Michael

commit 2d0c7fe44f075205db1713ef2d69006f7192c490
Author: Michael Adam <obnox at samba.org>
Date:   Thu Jan 3 11:33:17 2008 +0100

    Fix a comment.
    
    Michael

commit 08056a2c8160a44d27744467da467faea9ba0686
Author: Michael Adam <obnox at samba.org>
Date:   Thu Jan 3 11:32:00 2008 +0100

    Rename libnet_smbconf_reg_createkey_internal to libnet_smbconf_reg_create_service_key.
    
    Michael

commit de349bd26db3341815f6d8f6c18a5ca1fd664dca
Author: Michael Adam <obnox at samba.org>
Date:   Thu Jan 3 11:30:14 2008 +0100

    Add libnet_conf API function libnet_smbconf_create_share().
    
    And make libnet_smbconf_setparm() return error if the share
    does not already exist. Adapt net_conf_addshare to this new
    situation.
    
    Michael

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

Summary of changes:
 source/libnet/libnet_conf.c |   43 ++++++++++++++++++++++++++++++++-----------
 source/utils/net_conf.c     |   13 ++++++++++++-
 2 files changed, 44 insertions(+), 12 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/libnet/libnet_conf.c b/source/libnet/libnet_conf.c
index ebdfd75..01c4237 100644
--- a/source/libnet/libnet_conf.c
+++ b/source/libnet/libnet_conf.c
@@ -55,7 +55,7 @@ static WERROR libnet_smbconf_add_string_to_array(TALLOC_CTX *mem_ctx,
 }
 
 /**
- * Open a subkey of KEY_SMBCONF (i.e a service)
+ * Open a registry key specified by "path"
  */
 static WERROR libnet_smbconf_reg_open_path(TALLOC_CTX *mem_ctx,
 					   const char *path,
@@ -155,7 +155,7 @@ static bool libnet_smbconf_value_exists(struct registry_key *key,
 /*
  * create a subkey of KEY_SMBCONF
  */
-static WERROR libnet_smbconf_reg_createkey_internal(TALLOC_CTX *ctx,
+static WERROR libnet_smbconf_reg_create_service_key(TALLOC_CTX *ctx,
 						    const char * subkeyname,
 						    struct registry_key **newkey)
 {
@@ -197,9 +197,9 @@ done:
 /*
  * add a value to a key.
  */
-static WERROR libnet_smbconf_reg_setvalue_internal(struct registry_key *key,
-						   const char *valname,
-						   const char *valstr)
+static WERROR libnet_smbconf_reg_set_value(struct registry_key *key,
+					   const char *valname,
+					   const char *valstr)
 {
 	struct registry_value val;
 	WERROR werr = WERR_OK;
@@ -612,6 +612,27 @@ bool libnet_smbconf_share_exists(const char *servicename)
 }
 
 /**
+ * Add a service if it does not already exist.
+ */
+WERROR libnet_smbconf_create_share(const char *servicename)
+{
+	WERROR werr;
+	TALLOC_CTX *mem_ctx = talloc_stackframe();
+	struct registry_key *key = NULL;
+
+	if (libnet_smbconf_share_exists(servicename)) {
+		werr = WERR_ALREADY_EXISTS;
+		goto done;
+	}
+
+	werr = libnet_smbconf_reg_create_service_key(mem_ctx, servicename, &key);
+
+done:
+	TALLOC_FREE(mem_ctx);
+	return werr;
+}
+
+/**
  * get a definition of a share (service) from configuration.
  */
 WERROR libnet_smbconf_getshare(TALLOC_CTX *mem_ctx, const char *servicename,
@@ -668,17 +689,17 @@ WERROR libnet_smbconf_setparm(const char *service,
 	TALLOC_CTX *mem_ctx = talloc_stackframe();
 
 	if (!libnet_smbconf_share_exists(service)) {
-		werr = libnet_smbconf_reg_createkey_internal(mem_ctx, service,
-							     &key);
-	} else {
-		werr = libnet_smbconf_reg_open_service_key(mem_ctx, service,
-							   REG_KEY_WRITE, &key);
+		werr = WERR_NO_SUCH_SERVICE;
+		goto done;
 	}
+
+	werr = libnet_smbconf_reg_open_service_key(mem_ctx, service,
+						   REG_KEY_WRITE, &key);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
 
-	werr = libnet_smbconf_reg_setvalue_internal(key, param, valstr);
+	werr = libnet_smbconf_reg_set_value(key, param, valstr);
 
 done:
 	TALLOC_FREE(mem_ctx);
diff --git a/source/utils/net_conf.c b/source/utils/net_conf.c
index 07eb3b8..feee16f 100644
--- a/source/utils/net_conf.c
+++ b/source/utils/net_conf.c
@@ -628,7 +628,18 @@ static int net_conf_addshare(int argc, const char **argv)
 	}
 
 	/*
-	 * create the share by adding the parameters
+	 * create the share
+	 */
+
+	werr = libnet_smbconf_create_share(sharename);
+	if (!W_ERROR_IS_OK(werr)) {
+		d_fprintf(stderr, "Error creating share %s: %s\n",
+			  sharename, dos_errstr(werr));
+		goto done;
+	}
+
+	/*
+	 * fill the share with parameters
 	 */
 
 	werr = libnet_smbconf_setparm(sharename, "path", path);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list