summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cfg.c4
-rw-r--r--src/cfg.h1
-rw-r--r--src/dbi.c1
-rw-r--r--src/dbi.h1
-rw-r--r--src/ogAdmServer.c5
-rw-r--r--src/ogAdmServer.h1
6 files changed, 13 insertions, 0 deletions
diff --git a/src/cfg.c b/src/cfg.c
index 54067b0..d19ab15 100644
--- a/src/cfg.c
+++ b/src/cfg.c
@@ -57,6 +57,9 @@ static int parse_json_db(struct og_server_cfg *cfg, json_t *element)
} else if (!strcmp(key, "name")) {
if (og_json_parse_string(value, &cfg->db.name) < 0)
return -1;
+ } else if (!strcmp(key, "port")) {
+ if (og_json_parse_uint(value, &cfg->db.port) < 0)
+ return -1;
} else {
syslog(LOG_ERR, "unknown key `%s' in db\n", key);
return -1;
@@ -162,4 +165,5 @@ void from_json_to_legacy(struct og_server_cfg *cfg)
snprintf(catalog, sizeof(catalog), cfg->db.name);
snprintf(interface, sizeof(interface), cfg->wol.interface);
snprintf(auth_token, sizeof(auth_token), cfg->rest.api_token);
+ snprintf(db_port, sizeof(db_port), "%u", cfg->db.port);
}
diff --git a/src/cfg.h b/src/cfg.h
index d489d5f..5b89db2 100644
--- a/src/cfg.h
+++ b/src/cfg.h
@@ -6,6 +6,7 @@ struct og_server_cfg {
const char *user;
const char *pass;
const char *ip;
+ unsigned int port;
const char *name;
} db;
struct {
diff --git a/src/dbi.c b/src/dbi.c
index 6640f50..e0fe738 100644
--- a/src/dbi.c
+++ b/src/dbi.c
@@ -24,6 +24,7 @@ struct og_dbi *og_dbi_open(struct og_dbi_config *config)
}
dbi_conn_set_option(dbi->conn, "host", config->host);
+ dbi_conn_set_option(dbi->conn, "port", config->port);
dbi_conn_set_option(dbi->conn, "username", config->user);
dbi_conn_set_option(dbi->conn, "password", config->passwd);
dbi_conn_set_option(dbi->conn, "dbname", config->database);
diff --git a/src/dbi.h b/src/dbi.h
index 30327a7..4f1d81c 100644
--- a/src/dbi.h
+++ b/src/dbi.h
@@ -7,6 +7,7 @@ struct og_dbi_config {
const char *user;
const char *passwd;
const char *host;
+ const char *port;
const char *database;
};
diff --git a/src/ogAdmServer.c b/src/ogAdmServer.c
index f8a50ae..3ba5b30 100644
--- a/src/ogAdmServer.c
+++ b/src/ogAdmServer.c
@@ -31,6 +31,7 @@ char interface[4096]; // Interface name
char auth_token[4096]; // API token
char servidoradm[4096]; // Dirección IP del servidor de administración
char puerto[4096]; // Puerto de comunicación
+char db_port[4096];
SOCKETCL tbsockets[MAXIMOS_CLIENTES];
@@ -38,6 +39,7 @@ struct og_dbi_config dbi_config = {
.user = usuario,
.passwd = pasguor,
.host = datasource,
+ .port = db_port,
.database = catalog,
};
@@ -101,6 +103,9 @@ bool tomaConfiguracion(const char *filecfg)
line = fgets(buf, sizeof(buf), fcfg);
}
+ /* Default value to preserve legacy config file support */
+ snprintf(db_port, sizeof(db_port), "3306");
+
fclose(fcfg);
if (!servidoradm[0]) {
diff --git a/src/ogAdmServer.h b/src/ogAdmServer.h
index 7e5fcd3..f51b7be 100644
--- a/src/ogAdmServer.h
+++ b/src/ogAdmServer.h
@@ -29,6 +29,7 @@ extern char interface[4096];
extern char api_token[4096];
extern char servidoradm[4096];
extern char puerto[4096];
+extern char db_port[4096];
struct og_client;