updating client to autoupdate the settings db

This commit is contained in:
jakani24
2024-02-17 09:39:14 +01:00
parent b32c8063b6
commit a5763ca271
28 changed files with 33 additions and 14 deletions

View File

@@ -17,11 +17,17 @@
#include "settings.h" #include "settings.h"
#include "check_dir.h" #include "check_dir.h"
#include "virus_ctrl.h" #include "virus_ctrl.h"
#include "update.h"
int main() { int main() {
log(LOGLEVEL::INFO, "[main()]:Starting main thread."); log(LOGLEVEL::INFO, "[main()]:Starting main thread.");
printf("welcome to the jakach security tool main thread\n"); printf("welcome to the jakach security tool main thread\n");
load_settings();//load the settings from the settings file load_settings();//load the settings from the settings file
if (update_settings()) { //update the settings from the server
log(LOGLEVEL::ERR, "[main()]:Could not update settings from server.");
}
load_settings();
initialize(DB_DIR); //load the hash databases into memory initialize(DB_DIR); //load the hash databases into memory
//download_file_from_srv("http://192.168.27.13/api/php/settings/get_settings.php?settings", "c:\\programdata\\jakach\\out12.txt");
//start a second thread which will scan for new files //start a second thread which will scan for new files
if (get_setting("rtp_folder_scan:status") == 1) { if (get_setting("rtp_folder_scan:status") == 1) {

View File

@@ -47,7 +47,7 @@ int download_file_from_srv(const char* url, const char* output_file_path) {
CURL* curl; CURL* curl;
CURLcode res; CURLcode res;
FILE* output_file; FILE* output_file;
char*buf=new char[55];
curl = curl_easy_init(); curl = curl_easy_init();
if (!curl) { if (!curl) {
return 1; return 1;
@@ -60,7 +60,7 @@ int download_file_from_srv(const char* url, const char* output_file_path) {
output_file = fopen(output_file_path, "wb"); output_file = fopen(output_file_path, "wb");
if (!output_file) { if (!output_file) {
curl_easy_cleanup(curl); curl_easy_cleanup(curl);
return 1; return 2;
} }
// Set the write callback function // Set the write callback function
@@ -70,12 +70,23 @@ int download_file_from_srv(const char* url, const char* output_file_path) {
// Perform the download // Perform the download
res = curl_easy_perform(curl); res = curl_easy_perform(curl);
if (res != CURLE_OK) { if (res != CURLE_OK) {
return 1; return 3;
} }
// Cleanup and close the file // Cleanup and close the file
curl_easy_cleanup(curl); curl_easy_cleanup(curl);
fclose(output_file); fclose(output_file);
if ((output_file = fopen(output_file_path, "r")) == 0) {
return 4;
}
else {
fscanf(output_file, "%50s", buf);
if (strcmp(buf, "no_auth") == 0) {
fclose(output_file);
return 5;
}
fclose(output_file);
}
delete[] buf;
return 0; return 0;
} }

View File

@@ -17,6 +17,7 @@ int load_settings() {
if (fopen_s(&fp, SETTINGS_DB, "r")!=0) { if (fopen_s(&fp, SETTINGS_DB, "r")!=0) {
log(LOGLEVEL::ERR, "[load_settings()]: Could not open settings file. ", SETTINGS_DB); log(LOGLEVEL::ERR, "[load_settings()]: Could not open settings file. ", SETTINGS_DB);
strcpy_s(setting_server_server_url, 295, "http://localhost");
return 1; return 1;
} }
else { else {
@@ -63,6 +64,7 @@ int load_settings() {
} }
load_included_folders(); load_included_folders();
load_excluded_folders(); load_excluded_folders();
fclose(fp);
return 0; return 0;
} }

View File

@@ -40,15 +40,15 @@ int update_db(const std::string& folder_path) {
} }
return 0; return 0;
} }
int update_settings(const std::string& folder_path) { int update_settings() {
//create the strings to download the files //create the strings to download the files
char* url = new char[300]; char* url = new char[500];
get_setting("server:server_url", url); get_setting("server:server_url", url);
strcat_s(url, 295, "/database/"); strcat_s(url, 500, "/api/php/settings/get_settings.php?settings");
strcat_s(url, 295, "settings_db.txt");
int res = download_file_from_srv(url, SETTINGS_DB); int res = download_file_from_srv(url, SETTINGS_DB);
//res = 0;
if (res != 0) { if (res != 0) {
log(LOGLEVEL::ERR, "[update_db()]: Error downloading settings database file from server", url); log(LOGLEVEL::ERR, "[update_db()]: Error downloading settings database file from server", url, " ERROR:",res);
return 1; return 1;
} }

View File

@@ -4,5 +4,5 @@
#include <curl/curl.h> #include <curl/curl.h>
#include<string> #include<string>
int update_db(const std::string& folder_path); int update_db(const std::string& folder_path);
int update_settings(const std::string& folder_path); int update_settings();
#endif #endif

View File

@@ -1,4 +1,4 @@
 Quellen werden auf Modulabhängigkeiten überprüft...  Quellen werden auf Modulabhängigkeiten überprüft...
scan.cpp connect.cpp
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\scan.cpp(153,32): warning C4018: ">=": Konflikt zwischen "signed" und "unsigned" C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\connect.cpp(103,65): warning C4267: "Argument": Konvertierung von "size_t" nach "int", Datenverlust möglich
client_backend.vcxproj -> C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\x64\Debug\client_backend.exe client_backend.vcxproj -> C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\x64\Debug\client_backend.exe

View File

@@ -3,7 +3,7 @@
//put auth code here afterwards //put auth code here afterwards
include "../accessctrl/check_apikey.php"; include "../accessctrl/check_apikey.php";
if(check_apikey()!==true){ if(check_apikey()!==true){
die("no_atuh"); die("no_auth");
} }
//add the entry to the log db //add the entry to the log db

View File

@@ -3,7 +3,7 @@
//put auth code here afterwards //put auth code here afterwards
include "../accessctrl/check_apikey.php"; include "../accessctrl/check_apikey.php";
if(check_apikey()!==true){ if(check_apikey()!==true){
die("no_atuh"); die("no_auth");
} }
$setting_virus_ctrl_virus_found_action = "not configured yet"; $setting_virus_ctrl_virus_found_action = "not configured yet";