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
OpenGnSys Support Team 2024-12-12 15:57:47 +01:00
parent 6a63218f85
commit 5e21716afb
4 changed files with 41 additions and 2 deletions

View File

@ -11,6 +11,10 @@
"user" : "mysql",
"pass" : "mysql"
},
"samba" : {
"user" : "og",
"pass" : "test"
},
"wol" : {
"interface" : "lo"
},

View File

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

View File

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

View File

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