1
0
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:
Günther Deschner
2007-12-19 16:07:40 +01:00
parent 1cad549f54
commit 15c2bc15f2
2 changed files with 53 additions and 7 deletions

View File

@ -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;
}

View File

@ -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);
}