mirror of
https://github.com/samba-team/samba.git
synced 2025-08-02 00:22:11 +03:00
Implement NetServerSetInfo level 1005 in local mode with smbconf registry.
Guenther
This commit is contained in:
@ -163,12 +163,13 @@ static WERROR NetServerSetInfoLocal_1005(struct libnetapi_ctx *ctx,
|
||||
return WERR_INVALID_PARAM;
|
||||
}
|
||||
|
||||
/*
|
||||
return libnet_conf_set_parm(GLOBAL_NAME,
|
||||
"server string",
|
||||
info1005->comment);
|
||||
*/
|
||||
return WERR_NOT_SUPPORTED;
|
||||
if (!lp_include_registry_globals()) {
|
||||
return WERR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
return libnet_smbconf_set_global_param(ctx,
|
||||
"server string",
|
||||
info1005->comment);
|
||||
}
|
||||
|
||||
static WERROR NetServerSetInfoLocal(struct libnetapi_ctx *ctx,
|
||||
@ -180,7 +181,6 @@ static WERROR NetServerSetInfoLocal(struct libnetapi_ctx *ctx,
|
||||
switch (level) {
|
||||
case 1005:
|
||||
return NetServerSetInfoLocal_1005(ctx, buffer, parm_error);
|
||||
break;
|
||||
default:
|
||||
return WERR_UNKNOWN_LEVEL;
|
||||
}
|
||||
|
@ -147,3 +147,49 @@ done:
|
||||
return werr;
|
||||
}
|
||||
|
||||
static WERROR do_modify_val_config(struct registry_key *key,
|
||||
const char *val_name,
|
||||
const char *val_data)
|
||||
{
|
||||
struct registry_value val;
|
||||
|
||||
ZERO_STRUCT(val);
|
||||
|
||||
val.type = REG_SZ;
|
||||
val.v.sz.str = CONST_DISCARD(char *, val_data);
|
||||
val.v.sz.len = strlen(val_data) + 1;
|
||||
|
||||
return reg_setvalue(key, val_name, &val);
|
||||
}
|
||||
|
||||
WERROR libnet_smbconf_set_global_param(TALLOC_CTX *mem_ctx,
|
||||
const char *param,
|
||||
const char *val)
|
||||
{
|
||||
WERROR werr;
|
||||
struct registry_key *key = NULL;
|
||||
|
||||
if (!lp_include_registry_globals()) {
|
||||
return WERR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
if (!registry_init_regdb()) {
|
||||
return WERR_REG_IO_FAILURE;
|
||||
}
|
||||
|
||||
if (!libnet_smbconf_key_exists(mem_ctx, GLOBAL_NAME)) {
|
||||
werr = libnet_reg_createkey_internal(mem_ctx,
|
||||
GLOBAL_NAME, &key);
|
||||
} else {
|
||||
werr = libnet_smbconf_open_path(mem_ctx,
|
||||
GLOBAL_NAME,
|
||||
REG_KEY_WRITE, &key);
|
||||
}
|
||||
|
||||
if (!W_ERROR_IS_OK(werr)) {
|
||||
return werr;
|
||||
}
|
||||
|
||||
return do_modify_val_config(key, param, val);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user