The branch, master has been updated via 38d02c5d857ecea3405c3f48e64906764329f1a1 (commit) from cf9b027709b46872b07e7f7ca1c9740fc5e0037b (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 38d02c5d857ecea3405c3f48e64906764329f1a1 Author: Michael Adam <ob...@samba.org> Date: Fri Oct 24 13:49:16 2008 +0200 s3:net conf: support dangling parameters by specifying "" as the section name. for {get,set,del}parm Michael ----------------------------------------------------------------------- Summary of changes: source3/utils/net_conf.c | 42 ++++++++++++++++++++++++++++++------------ 1 files changed, 30 insertions(+), 12 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/utils/net_conf.c b/source3/utils/net_conf.c index 663c592..864ca9c 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) { -- Samba Shared Repository