diff --git a/include/chat/config.h b/include/chat/config.h index 35b09cb..a5aabdc 100644 --- a/include/chat/config.h +++ b/include/chat/config.h @@ -26,7 +26,6 @@ extern "C" { #include //damn i really hate including headers in headers //CONFIG MACROS -#define WHY2_CHAT_CONFIG_DIR WHY2_CONFIG_DIR "/WHY2" #define WHY2_CHAT_CONFIG_URL "https://raw.githubusercontent.com/ENGO150/WHY2/development/src/chat/config/" #define WHY2_CHAT_CONFIG_SERVER "server.toml" #define WHY2_CHAT_CONFIG_CLIENT "client.toml" diff --git a/include/chat/crypto.h b/include/chat/crypto.h index e3065ec..858ca73 100644 --- a/include/chat/crypto.h +++ b/include/chat/crypto.h @@ -30,7 +30,7 @@ extern "C" { #define WHY2_CHAT_PRIME_ITERS 100 //NUMBER OF ITERATIONS WHEN CHECKING PRIME NUMBER #define WHY2_CHAT_RSA_EXPONENT "H33" //DEFAULT e IN BASE WHY2_CHAT_KEY_BASE -#define WHY2_CHAT_KEY_LOCATION WHY2_CHAT_CONFIG_DIR "/keys" //KEYS LOCATION +#define WHY2_CHAT_KEY_LOCATION WHY2_CONFIG_DIR "/keys" //KEYS LOCATION #define WHY2_CHAT_PUB_KEY "pub" #define WHY2_CHAT_PRI_KEY "pri" #define WHY2_CHAT_KEY_BASE 62 //BASE IN THE GENERATED KEYS ARE STORED IN WHY2_CHAT_KEY_LOCATION diff --git a/include/flags.h b/include/flags.h index a151da6..b474231 100644 --- a/include/flags.h +++ b/include/flags.h @@ -50,7 +50,7 @@ enum WHY2_OUTPUT_FORMAT #define WHY2_VERSION "v5.0" //WHY2_VERSION OF CURRENT BUILD > DO NOT TOUCH THIS < #define WHY2_VERSIONS_URL "https://raw.githubusercontent.com/ENGO150/WHY2/release/versions.json" //URL FOR GETTING versions.json -#define WHY2_CONFIG_DIR "/home/{USER}/.config" +#define WHY2_CONFIG_DIR "/home/{USER}/.config/WHY2" #define WHY2_VERSIONS_NAME WHY2_CONFIG_DIR "/.versions.json" //do I have to explain this? #define WHY2_UPDATE_URL "https://github.com/ENGO150/WHY2.git" // REPOSITORY URL FOR UPDATES (YOU DON'T SAY) diff --git a/src/chat/config.c b/src/chat/config.c index a4722e1..9d23958 100644 --- a/src/chat/config.c +++ b/src/chat/config.c @@ -43,14 +43,14 @@ void init_config(char *filename) why2_directory(); //GET THE CONFIG TYPE - char *buffer = why2_malloc(strlen(WHY2_CHAT_CONFIG_DIR) + strlen(filename) + 2); - sprintf(buffer, "%s/%s", WHY2_CHAT_CONFIG_DIR, filename); + char *buffer = why2_malloc(strlen(WHY2_CONFIG_DIR) + strlen(filename) + 2); + sprintf(buffer, "%s/%s", WHY2_CONFIG_DIR, filename); char *path = why2_replace(buffer, "{USER}", getenv("USER")); if (access(path, R_OK) != 0) //CONFIG DOESN'T EXIST { - char *config_dir = why2_replace(WHY2_CHAT_CONFIG_DIR, "{USER}", getenv("USER")); + char *config_dir = why2_replace(WHY2_CONFIG_DIR, "{USER}", getenv("USER")); //CREATE CONFIG DIRECTORY mkdir(config_dir, 0700); @@ -83,11 +83,11 @@ char *config(char *key, enum CONFIG_TYPES type) switch (type) //GET path { case CLIENT: - path = why2_replace(WHY2_CHAT_CONFIG_DIR "/" WHY2_CHAT_CONFIG_CLIENT, "{USER}", getenv("USER")); + path = why2_replace(WHY2_CONFIG_DIR "/" WHY2_CHAT_CONFIG_CLIENT, "{USER}", getenv("USER")); break; case SERVER: - path = why2_replace(WHY2_CHAT_CONFIG_DIR "/" WHY2_CHAT_CONFIG_SERVER, "{USER}", getenv("USER")); + path = why2_replace(WHY2_CONFIG_DIR "/" WHY2_CHAT_CONFIG_SERVER, "{USER}", getenv("USER")); break; default: diff --git a/src/core/lib/utils/misc.c b/src/core/lib/utils/misc.c index e28c8a2..20de88a 100644 --- a/src/core/lib/utils/misc.c +++ b/src/core/lib/utils/misc.c @@ -76,9 +76,12 @@ enum WHY2_EXIT_CODES why2_check_version(void) //FILE-CHECK VARIABLES int not_found_buffer = 0; + //GET VERSION FILE + char *version_file = why2_replace(WHY2_VERSIONS_NAME, "{USER}", getenv("USER")); + //CURL VARIABLES CURL *curl = curl_easy_init(); - FILE *file_buffer = why2_fopen(WHY2_VERSIONS_NAME, "w+"); + FILE *file_buffer = why2_fopen(version_file, "w+"); //GET versions.json curl_easy_setopt(curl, CURLOPT_URL, WHY2_VERSIONS_URL); @@ -92,19 +95,19 @@ enum WHY2_EXIT_CODES why2_check_version(void) curl_easy_cleanup(curl); why2_deallocate(file_buffer); - while (access(WHY2_VERSIONS_NAME, R_OK) != 0) + while (access(version_file, R_OK) != 0) { not_found_buffer++; if (not_found_buffer == WHY2_NOT_FOUND_TRIES) { - if (!why2_get_flags().no_output) fprintf(stderr, "%s'%s' not found! Exiting...\n", WHY2_CLEAR_SCREEN, WHY2_VERSIONS_NAME); + if (!why2_get_flags().no_output) fprintf(stderr, "%s'%s' not found! Exiting...\n", WHY2_CLEAR_SCREEN, version_file); why2_clean_memory("core_version_check"); return WHY2_DOWNLOAD_FAILED; } - if (!why2_get_flags().no_output) printf("%s'%s' not found (%dx)! Trying again in a second.\n", WHY2_CLEAR_SCREEN, WHY2_VERSIONS_NAME, not_found_buffer); + if (!why2_get_flags().no_output) printf("%s'%s' not found (%dx)! Trying again in a second.\n", WHY2_CLEAR_SCREEN, version_file, not_found_buffer); sleep(1); } @@ -115,7 +118,7 @@ enum WHY2_EXIT_CODES why2_check_version(void) struct json_object *active; //COUNT LENGTH OF buffer AND STORE IT IN bufferSize - file_buffer = why2_fopen(WHY2_VERSIONS_NAME, "r"); + file_buffer = why2_fopen(version_file, "r"); fseek(file_buffer, 0, SEEK_END); buffer_size = ftell(file_buffer); rewind(file_buffer); //REWIND file_buffer (NO SHIT) @@ -204,7 +207,7 @@ enum WHY2_EXIT_CODES why2_check_version(void) install_code = system(install_command); //INSTALL //REMOVE versions.json - OTHERWISE WILL CAUSE SEGFAULT IN NEXT RUN - remove(WHY2_VERSIONS_NAME); + remove(version_file); why2_deallocate(install_command); @@ -257,6 +260,7 @@ enum WHY2_EXIT_CODES why2_check_version(void) //DEALLOCATION json_object_put(parsed_json); //THIS FREES EVERY json_object - AT LEAST JSON-C'S DOCUMENTATION SAYS THAT why2_deallocate(buffer); + why2_deallocate(version_file); why2_reset_memory_identifier();