summaryrefslogtreecommitdiffstats
path: root/source/utils
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2007-08-17 16:03:18 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:29:54 -0500
commit3b762ab18392fd06427957b0263262e3b8e34b9d (patch)
tree9eae070faa8cd7827721d9ee8155fa7685dbdea1 /source/utils
parent0dfb5eee25e287c129f7d34e4d079c60d56dce59 (diff)
downloadsamba-3b762ab18392fd06427957b0263262e3b8e34b9d.tar.gz
samba-3b762ab18392fd06427957b0263262e3b8e34b9d.tar.xz
samba-3b762ab18392fd06427957b0263262e3b8e34b9d.zip
r24527: Add a function lp_canonicalize_parameter_with_value that turns
a parameter and value into the canonical paramter with the value inverted if it was in invers boolean synonym. Make net conf use this function when storing parameters. Michael
Diffstat (limited to 'source/utils')
-rw-r--r--source/utils/net_conf.c43
1 files changed, 10 insertions, 33 deletions
diff --git a/source/utils/net_conf.c b/source/utils/net_conf.c
index 2f0b3d6b040..c18b733a892 100644
--- a/source/utils/net_conf.c
+++ b/source/utils/net_conf.c
@@ -154,43 +154,20 @@ static WERROR reg_setvalue_internal(struct registry_key *key,
char *subkeyname;
const char *canon_valname;
const char *canon_valstr;
- BOOL canon_inverse;
- struct parm_struct *parm;
-
- if (!lp_parameter_is_valid(valname)) {
- d_fprintf(stderr, "Invalid parameter '%s' given.\n", valname);
- werr = WERR_INVALID_PARAM;
- goto done;
- }
- if (!lp_canonicalize_parameter(valname, &canon_valname, &canon_inverse))
+ if (!lp_canonicalize_parameter_with_value(valname, valstr,
+ &canon_valname,
+ &canon_valstr))
{
- d_fprintf(stderr, "ERROR: could not canonicalize parameter "
- "'%s' after successful validation: this should not "
- "happen!\n", valname);
- werr = WERR_INVALID_PARAM;
- goto done;
- }
- if (canon_inverse) {
- if (!lp_invert_boolean(valstr, &canon_valstr)) {
- d_fprintf(stderr, "invalid value '%s' given for "
- "parameter '%s'\n", valstr, canon_valname);
- werr = WERR_INVALID_PARAM;
- goto done;
- }
- } else {
- parm = lp_get_parameter(canon_valname);
- if (parm->type == P_BOOL) {
- if (!lp_canonicalize_boolean(valstr, &canon_valstr)) {
- d_fprintf(stderr, "invalied value '%s' given "
- "for parameter '%s'\n", valstr,
- canon_valname);
- werr = WERR_INVALID_PARAM;
- goto done;
- }
+ if (canon_valname == NULL) {
+ d_fprintf(stderr, "invalid parameter '%s' given\n",
+ valname);
} else {
- canon_valstr = valstr;
+ d_fprintf(stderr, "invalid value '%s' given for "
+ "parameter '%s'\n", valstr, valname);
}
+ werr = WERR_INVALID_PARAM;
+ goto done;
}
ZERO_STRUCT(val);