mirror of
https://github.com/samba-team/samba.git
synced 2025-06-21 03:17:08 +03:00
Move reg_setvalue_internal() to libnet_conf.c
renaming it to libnet_smbconf_setvalue_internal() Michael
This commit is contained in:
parent
81b9f1301d
commit
7cb51a1d6d
@ -148,6 +148,78 @@ done:
|
|||||||
return werr;
|
return werr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* add a value to a key.
|
||||||
|
*/
|
||||||
|
WERROR libnet_smbconf_reg_setvalue_internal(struct registry_key *key,
|
||||||
|
const char *valname,
|
||||||
|
const char *valstr)
|
||||||
|
{
|
||||||
|
struct registry_value val;
|
||||||
|
WERROR werr = WERR_OK;
|
||||||
|
char *subkeyname;
|
||||||
|
const char *canon_valname;
|
||||||
|
const char *canon_valstr;
|
||||||
|
|
||||||
|
if (!lp_canonicalize_parameter_with_value(valname, valstr,
|
||||||
|
&canon_valname,
|
||||||
|
&canon_valstr))
|
||||||
|
{
|
||||||
|
if (canon_valname == NULL) {
|
||||||
|
d_fprintf(stderr, "invalid parameter '%s' given\n",
|
||||||
|
valname);
|
||||||
|
} else {
|
||||||
|
d_fprintf(stderr, "invalid value '%s' given for "
|
||||||
|
"parameter '%s'\n", valstr, valname);
|
||||||
|
}
|
||||||
|
werr = WERR_INVALID_PARAM;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
ZERO_STRUCT(val);
|
||||||
|
|
||||||
|
val.type = REG_SZ;
|
||||||
|
val.v.sz.str = CONST_DISCARD(char *, canon_valstr);
|
||||||
|
val.v.sz.len = strlen(canon_valstr) + 1;
|
||||||
|
|
||||||
|
if (registry_smbconf_valname_forbidden(canon_valname)) {
|
||||||
|
d_fprintf(stderr, "Parameter '%s' not allowed in registry.\n",
|
||||||
|
canon_valname);
|
||||||
|
werr = WERR_INVALID_PARAM;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
subkeyname = strrchr_m(key->key->name, '\\');
|
||||||
|
if ((subkeyname == NULL) || (*(subkeyname +1) == '\0')) {
|
||||||
|
d_fprintf(stderr, "Invalid registry key '%s' given as "
|
||||||
|
"smbconf section.\n", key->key->name);
|
||||||
|
werr = WERR_INVALID_PARAM;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
subkeyname++;
|
||||||
|
if (!strequal(subkeyname, GLOBAL_NAME) &&
|
||||||
|
lp_parameter_is_global(valname))
|
||||||
|
{
|
||||||
|
d_fprintf(stderr, "Global paramter '%s' not allowed in "
|
||||||
|
"service definition ('%s').\n", canon_valname,
|
||||||
|
subkeyname);
|
||||||
|
werr = WERR_INVALID_PARAM;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
werr = reg_setvalue(key, canon_valname, &val);
|
||||||
|
if (!W_ERROR_IS_OK(werr)) {
|
||||||
|
d_fprintf(stderr,
|
||||||
|
"Error adding value '%s' to "
|
||||||
|
"key '%s': %s\n",
|
||||||
|
canon_valname, key->key->name, dos_errstr(werr));
|
||||||
|
}
|
||||||
|
|
||||||
|
done:
|
||||||
|
return werr;
|
||||||
|
}
|
||||||
|
|
||||||
static WERROR do_modify_val_config(struct registry_key *key,
|
static WERROR do_modify_val_config(struct registry_key *key,
|
||||||
const char *val_name,
|
const char *val_name,
|
||||||
const char *val_data)
|
const char *val_data)
|
||||||
|
@ -143,77 +143,6 @@ static char *format_value(TALLOC_CTX *mem_ctx, struct registry_value *value)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* add a value to a key.
|
|
||||||
*/
|
|
||||||
static WERROR reg_setvalue_internal(struct registry_key *key,
|
|
||||||
const char *valname,
|
|
||||||
const char *valstr)
|
|
||||||
{
|
|
||||||
struct registry_value val;
|
|
||||||
WERROR werr = WERR_OK;
|
|
||||||
char *subkeyname;
|
|
||||||
const char *canon_valname;
|
|
||||||
const char *canon_valstr;
|
|
||||||
|
|
||||||
if (!lp_canonicalize_parameter_with_value(valname, valstr,
|
|
||||||
&canon_valname,
|
|
||||||
&canon_valstr))
|
|
||||||
{
|
|
||||||
if (canon_valname == NULL) {
|
|
||||||
d_fprintf(stderr, "invalid parameter '%s' given\n",
|
|
||||||
valname);
|
|
||||||
} else {
|
|
||||||
d_fprintf(stderr, "invalid value '%s' given for "
|
|
||||||
"parameter '%s'\n", valstr, valname);
|
|
||||||
}
|
|
||||||
werr = WERR_INVALID_PARAM;
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
ZERO_STRUCT(val);
|
|
||||||
|
|
||||||
val.type = REG_SZ;
|
|
||||||
val.v.sz.str = CONST_DISCARD(char *, canon_valstr);
|
|
||||||
val.v.sz.len = strlen(canon_valstr) + 1;
|
|
||||||
|
|
||||||
if (registry_smbconf_valname_forbidden(canon_valname)) {
|
|
||||||
d_fprintf(stderr, "Parameter '%s' not allowed in registry.\n",
|
|
||||||
canon_valname);
|
|
||||||
werr = WERR_INVALID_PARAM;
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
subkeyname = strrchr_m(key->key->name, '\\');
|
|
||||||
if ((subkeyname == NULL) || (*(subkeyname +1) == '\0')) {
|
|
||||||
d_fprintf(stderr, "Invalid registry key '%s' given as "
|
|
||||||
"smbconf section.\n", key->key->name);
|
|
||||||
werr = WERR_INVALID_PARAM;
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
subkeyname++;
|
|
||||||
if (!strequal(subkeyname, GLOBAL_NAME) &&
|
|
||||||
lp_parameter_is_global(valname))
|
|
||||||
{
|
|
||||||
d_fprintf(stderr, "Global paramter '%s' not allowed in "
|
|
||||||
"service definition ('%s').\n", canon_valname,
|
|
||||||
subkeyname);
|
|
||||||
werr = WERR_INVALID_PARAM;
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
werr = reg_setvalue(key, canon_valname, &val);
|
|
||||||
if (!W_ERROR_IS_OK(werr)) {
|
|
||||||
d_fprintf(stderr,
|
|
||||||
"Error adding value '%s' to "
|
|
||||||
"key '%s': %s\n",
|
|
||||||
canon_valname, key->key->name, dos_errstr(werr));
|
|
||||||
}
|
|
||||||
|
|
||||||
done:
|
|
||||||
return werr;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* delete a subkey of KEY_SMBCONF
|
* delete a subkey of KEY_SMBCONF
|
||||||
*/
|
*/
|
||||||
@ -435,8 +364,8 @@ static int import_process_service(TALLOC_CTX *ctx,
|
|||||||
if (opt_testmode) {
|
if (opt_testmode) {
|
||||||
d_printf("\t%s = %s\n", parm->label, valstr);
|
d_printf("\t%s = %s\n", parm->label, valstr);
|
||||||
} else {
|
} else {
|
||||||
werr = reg_setvalue_internal(key, parm->label,
|
werr = libnet_smbconf_reg_setvalue_internal(key,
|
||||||
valstr);
|
parm->label, valstr);
|
||||||
if (!W_ERROR_IS_OK(werr)) {
|
if (!W_ERROR_IS_OK(werr)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
@ -854,21 +783,24 @@ int net_conf_addshare(int argc, const char **argv)
|
|||||||
|
|
||||||
/* add config params as values */
|
/* add config params as values */
|
||||||
|
|
||||||
werr = reg_setvalue_internal(newkey, "path", path);
|
werr = libnet_smbconf_reg_setvalue_internal(newkey, "path", path);
|
||||||
if (!W_ERROR_IS_OK(werr))
|
if (!W_ERROR_IS_OK(werr))
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
if (comment != NULL) {
|
if (comment != NULL) {
|
||||||
werr = reg_setvalue_internal(newkey, "comment", comment);
|
werr = libnet_smbconf_reg_setvalue_internal(newkey, "comment",
|
||||||
|
comment);
|
||||||
if (!W_ERROR_IS_OK(werr))
|
if (!W_ERROR_IS_OK(werr))
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
werr = reg_setvalue_internal(newkey, "guest ok", guest_ok);
|
werr = libnet_smbconf_reg_setvalue_internal(newkey, "guest ok",
|
||||||
|
guest_ok);
|
||||||
if (!W_ERROR_IS_OK(werr))
|
if (!W_ERROR_IS_OK(werr))
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
werr = reg_setvalue_internal(newkey, "writeable", writeable);
|
werr = libnet_smbconf_reg_setvalue_internal(newkey, "writeable",
|
||||||
|
writeable);
|
||||||
if (!W_ERROR_IS_OK(werr))
|
if (!W_ERROR_IS_OK(werr))
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
@ -927,7 +859,7 @@ static int net_conf_setparm(int argc, const char **argv)
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
werr = reg_setvalue_internal(key, param, value_str);
|
werr = libnet_smbconf_reg_setvalue_internal(key, param, value_str);
|
||||||
if (!W_ERROR_IS_OK(werr)) {
|
if (!W_ERROR_IS_OK(werr)) {
|
||||||
d_fprintf(stderr, "Error setting value '%s': %s\n",
|
d_fprintf(stderr, "Error setting value '%s': %s\n",
|
||||||
param, dos_errstr(werr));
|
param, dos_errstr(werr));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user