From 5e743f843fc68b241c908c64eb2cf107c182adc3 Mon Sep 17 00:00:00 2001 From: Alexander Zhirov Date: Mon, 18 Jul 2022 15:01:15 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE:=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D1=8C=20=D1=83=D0=BA=D0=B0=D0=B7=D0=B0=D1=82?= =?UTF-8?q?=D1=8C=20=D0=BF=D1=83=D1=82=D1=8C=20=D0=BA=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=D1=83=20=D0=91=D0=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- arguments.c | 4 +++- arguments.h | 2 +- db.c | 31 +++++++++++++++++++++---------- db.h | 2 ++ freerdp.db | Bin 81920 -> 81920 bytes xfreerdp.c | 5 ++++- 6 files changed, 31 insertions(+), 13 deletions(-) diff --git a/arguments.c b/arguments.c index bf42643..0cd049f 100644 --- a/arguments.c +++ b/arguments.c @@ -14,8 +14,10 @@ #include "db.h" #include "monitor.h" -void settingsLoad() +void settingsLoad(char *pathDB) { + getPathDB(pathDB); + dbLoadData(); Monitors *monitors = dbGetMonitorsList(); diff --git a/arguments.h b/arguments.h index ddbe840..040ce8d 100644 --- a/arguments.h +++ b/arguments.h @@ -17,7 +17,7 @@ typedef struct void buildArguments(Arguments *args); void freeArguments(Arguments *args); -void settingsLoad(); +void settingsLoad(char *pathDB); void settingsFree(); #endif /* ARGUMENTS_H_ */ diff --git a/db.c b/db.c index 585e48d..7fbb523 100644 --- a/db.c +++ b/db.c @@ -12,6 +12,17 @@ #include "db.h" #include "node_settings.h" +char *getPathDB(char *path) +{ + static char *current = NULL; + if (path) + { + current = path; + } + + return current; +} + static sqlite3 *dbGetBase(char *path) { sqlite3 *db = NULL; @@ -68,7 +79,7 @@ static int dbLoad(void *NotUsed, int argc, char **argv, char **azColName) bool dbLoadData() { - sqlite3 *db = dbGetBase("freerdp.db"); + sqlite3 *db = dbGetBase(getPathDB(NULL)); if (!db) { return false; @@ -126,7 +137,7 @@ static int dbCreateHostsList(void *answer, int argc, char **argv, char **azColNa Hosts *dbGetHostsList() { - sqlite3 *db = dbGetBase("freerdp.db"); + sqlite3 *db = dbGetBase(getPathDB(NULL)); if (!db) { return false; @@ -167,7 +178,7 @@ void dbFreeHosts(Hosts *hosts) bool dbWriteParameter(Parameter name, bool set) { - sqlite3 *db = dbGetBase("freerdp.db"); + sqlite3 *db = dbGetBase(getPathDB(NULL)); if (!db) { return false; @@ -204,7 +215,7 @@ bool dbWriteParameter(Parameter name, bool set) bool dbWriteValue(Value name, bool set) { - sqlite3 *db = dbGetBase("freerdp.db"); + sqlite3 *db = dbGetBase(getPathDB(NULL)); if (!db) { return false; @@ -245,7 +256,7 @@ int dbAddServer(char *ip, char *dns) if (!(ip && strlen(ip) && dns && strlen(dns))) return -1; - sqlite3 *db = dbGetBase("freerdp.db"); + sqlite3 *db = dbGetBase(getPathDB(NULL)); if (!db) { return -2; @@ -349,7 +360,7 @@ int dbAddServer(char *ip, char *dns) bool dbSetUserNameCurrent(char *current) { - sqlite3 *db = dbGetBase("freerdp.db"); + sqlite3 *db = dbGetBase(getPathDB(NULL)); if (!db) { return false; @@ -415,7 +426,7 @@ static int dbCreateMonitorsList(void *answer, int argc, char **argv, char **azCo Monitors *dbGetMonitorsList() { - sqlite3 *db = dbGetBase("freerdp.db"); + sqlite3 *db = dbGetBase(getPathDB(NULL)); if (!db) { return false; @@ -457,7 +468,7 @@ void dbFreeMonitors(Monitors *monitors) bool deleteAllMonitors() { - sqlite3 *db = dbGetBase("freerdp.db"); + sqlite3 *db = dbGetBase(getPathDB(NULL)); if (!db) { return false; @@ -481,7 +492,7 @@ int dbAddMonitor(char *monitor, bool set) if (!(monitor && strlen(monitor))) return -1; - sqlite3 *db = dbGetBase("freerdp.db"); + sqlite3 *db = dbGetBase(getPathDB(NULL)); if (!db) { return -2; @@ -522,7 +533,7 @@ int dbSaveMonitors(char *name) if (!(name && strlen(name))) return -1; - sqlite3 *db = dbGetBase("freerdp.db"); + sqlite3 *db = dbGetBase(getPathDB(NULL)); if (!db) { return -2; diff --git a/db.h b/db.h index 2f9b864..89c7e1c 100644 --- a/db.h +++ b/db.h @@ -38,6 +38,8 @@ typedef struct Monitors size_t size; } Monitors; +char *getPathDB(char *path); + bool dbLoadData(); Hosts *dbGetHostsList(); void dbFreeHosts(Hosts *hosts); diff --git a/freerdp.db b/freerdp.db index 9809b4bf0b8842dea69070706ef11cc98db69d2a..1b31d0021ef46c5473389c7dce5698118ecbc530 100644 GIT binary patch delta 32 ocmZo@U~On%ogmG~HBrWyk!xdu$$v(U$y5IaF>-Ex@n6CL0IA{&egFUf delta 32 ocmZo@U~On%ogmG~Hc`fzk!@pw$$v)9$y5IaF>-8v@n6CL0I5U^b^rhX diff --git a/xfreerdp.c b/xfreerdp.c index c4edaa0..abdf3ca 100644 --- a/xfreerdp.c +++ b/xfreerdp.c @@ -6,7 +6,10 @@ int main(int argc, char **argv) { - settingsLoad(); + if (argc > 1) + settingsLoad(argv[1]); + else + settingsLoad("/etc/freerdp/freerdp.db"); IupOpen(&argc, &argv);