[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