diff options
author | Michael Adam <obnox@samba.org> | 2008-10-24 13:49:16 +0200 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2009-04-27 11:21:02 +0200 |
commit | 38d02c5d857ecea3405c3f48e64906764329f1a1 (patch) | |
tree | f4707ad934303139b1b763f583ec3a2548d0b076 /source3 | |
parent | cf9b027709b46872b07e7f7ca1c9740fc5e0037b (diff) | |
download | samba-38d02c5d857ecea3405c3f48e64906764329f1a1.tar.gz samba-38d02c5d857ecea3405c3f48e64906764329f1a1.tar.bz2 samba-38d02c5d857ecea3405c3f48e64906764329f1a1.zip |
s3:net conf: support dangling parameters by specifying "" as the section name.
for {get,set,del}parm
Michael
Diffstat (limited to 'source3')
-rw-r--r-- | source3/utils/net_conf.c | 42 |
1 files changed, 30 insertions, 12 deletions
diff --git a/source3/utils/net_conf.c b/source3/utils/net_conf.c index 663c5925c7..864ca9cc18 100644 --- a/source3/utils/net_conf.c +++ b/source3/utils/net_conf.c @@ -769,10 +769,16 @@ static int net_conf_setparm(struct net_context *c, struct smbconf_ctx *conf_ctx, net_conf_setparm_usage(c, argc, argv); goto done; } - service = talloc_strdup(mem_ctx, argv[0]); - if (service == NULL) { - d_printf("error: out of memory!\n"); - goto done; + /* + * NULL service name means "dangling parameters" to libsmbconf. + * We use the empty string from the command line for this purpose. + */ + if (strlen(argv[0]) != 0) { + service = talloc_strdup(mem_ctx, argv[0]); + if (service == NULL) { + d_printf("error: out of memory!\n"); + goto done; + } } param = strlower_talloc(mem_ctx, argv[1]); if (param == NULL) { @@ -821,10 +827,16 @@ static int net_conf_getparm(struct net_context *c, struct smbconf_ctx *conf_ctx, net_conf_getparm_usage(c, argc, argv); goto done; } - service = talloc_strdup(mem_ctx, argv[0]); - if (service == NULL) { - d_printf("error: out of memory!\n"); - goto done; + /* + * NULL service name means "dangling parameters" to libsmbconf. + * We use the empty string from the command line for this purpose. + */ + if (strlen(argv[0]) != 0) { + service = talloc_strdup(mem_ctx, argv[0]); + if (service == NULL) { + d_printf("error: out of memory!\n"); + goto done; + } } param = strlower_talloc(mem_ctx, argv[1]); if (param == NULL) { @@ -871,10 +883,16 @@ static int net_conf_delparm(struct net_context *c, struct smbconf_ctx *conf_ctx, net_conf_delparm_usage(c, argc, argv); goto done; } - service = talloc_strdup(mem_ctx, argv[0]); - if (service == NULL) { - d_printf("error: out of memory!\n"); - goto done; + /* + * NULL service name means "dangling parameters" to libsmbconf. + * We use the empty string from the command line for this purpose. + */ + if (strlen(argv[0]) != 0) { + service = talloc_strdup(mem_ctx, argv[0]); + if (service == NULL) { + d_printf("error: out of memory!\n"); + goto done; + } } param = strlower_talloc(mem_ctx, argv[1]); if (param == NULL) { |