mirror of https://git.48k.eu/ogserver
cfg: add samba configuration and use it in ogrelive template
add samba credentials to ogserver.json "samba" : { "user" : "og", "pass" : "test" } and use it in ogrelive template.master v1.2.5-28
parent
6a63218f85
commit
5e21716afb
|
@ -11,6 +11,10 @@
|
|||
"user" : "mysql",
|
||||
"pass" : "mysql"
|
||||
},
|
||||
"samba" : {
|
||||
"user" : "og",
|
||||
"pass" : "test"
|
||||
},
|
||||
"wol" : {
|
||||
"interface" : "lo"
|
||||
},
|
||||
|
|
31
src/cfg.c
31
src/cfg.c
|
@ -70,6 +70,27 @@ static int parse_json_db(struct og_server_cfg *cfg, json_t *element)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int parse_json_samba(struct og_server_cfg *cfg, json_t *element)
|
||||
{
|
||||
const char *key;
|
||||
json_t *value;
|
||||
|
||||
json_object_foreach(element, key, value) {
|
||||
if (!strcmp(key, "user")) {
|
||||
if (og_json_parse_string(value, &cfg->smb.user) < 0)
|
||||
return -1;
|
||||
} else if (!strcmp(key, "pass")) {
|
||||
if (og_json_parse_string(value, &cfg->smb.pass) < 0)
|
||||
return -1;
|
||||
} else {
|
||||
syslog(LOG_ERR, "unknown key `%s' in samba\n", key);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int parse_json_wol(struct og_server_cfg *cfg, json_t *element)
|
||||
{
|
||||
const char *key;
|
||||
|
@ -110,6 +131,7 @@ static int parse_json_repo(struct og_server_cfg *cfg, json_t *element)
|
|||
#define OG_SERVER_CFG_DB (1 << 1)
|
||||
#define OG_SERVER_CFG_WOL (1 << 2)
|
||||
#define OG_SERVER_CFG_REPO (1 << 3)
|
||||
#define OG_SERVER_CFG_SAMBA (1 << 4)
|
||||
|
||||
int parse_json_config(const char *filename, struct og_server_cfg *cfg)
|
||||
{
|
||||
|
@ -157,6 +179,12 @@ int parse_json_config(const char *filename, struct og_server_cfg *cfg)
|
|||
break;
|
||||
}
|
||||
flags |= OG_SERVER_CFG_DB;
|
||||
} else if (!strcmp(key, "samba")) {
|
||||
if (parse_json_samba(cfg, value) < 0) {
|
||||
ret = -1;
|
||||
break;
|
||||
}
|
||||
flags |= OG_SERVER_CFG_SAMBA;
|
||||
} else if (!strcmp(key, "repository")) {
|
||||
if (parse_json_repo(cfg, value) < 0)
|
||||
return -1;
|
||||
|
@ -181,6 +209,9 @@ int parse_json_config(const char *filename, struct og_server_cfg *cfg)
|
|||
ret = -1;
|
||||
}
|
||||
|
||||
if (!(flags & OG_SERVER_CFG_SAMBA))
|
||||
syslog(LOG_WARNING, "Missing samba configuration in ogserver.json file");
|
||||
|
||||
if (ret < 0)
|
||||
json_decref(root);
|
||||
else
|
||||
|
|
|
@ -11,6 +11,10 @@ struct og_server_cfg {
|
|||
const char *port;
|
||||
const char *api_token;
|
||||
} rest;
|
||||
struct {
|
||||
const char *user;
|
||||
const char *pass;
|
||||
} smb;
|
||||
struct {
|
||||
const char *interface;
|
||||
} wol;
|
||||
|
|
|
@ -1724,8 +1724,8 @@ static int og_set_client_mode(struct og_dbi *dbi, const char *client_ip,
|
|||
boot_cfg.ogserver = boot_params.server_ip;
|
||||
boot_cfg.ogrepo = boot_params.repo_ip;
|
||||
boot_cfg.ogrelivedir = boot_params.oglivedir;
|
||||
boot_cfg.username = "opengnsys";
|
||||
boot_cfg.passwd = ogconfig.db.pass;
|
||||
boot_cfg.username = ogconfig.smb.user;
|
||||
boot_cfg.passwd = ogconfig.smb.pass;
|
||||
|
||||
if (ogrelive_generate_grub2_file(&boot_cfg, mac) < 0) {
|
||||
syslog(LOG_ERR, "failed to create HTTP boot file (%s:%d)\n", __FILE__, __LINE__);
|
||||
|
|
Loading…
Reference in New Issue