From 4d4d94fc81f02e58b005cc4c300db495a6812bac Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Tue, 5 Jan 2021 23:01:38 +0100 Subject: [PATCH] Add config.c and config.h --- src/cache.c | 10 +++++----- src/config.c | 17 +++++++++++++++++ src/config.h | 32 ++++++++++++++++++++++++++++++++ src/necronda-server.c | 1 + src/necronda-server.h | 4 +++- 5 files changed, 58 insertions(+), 6 deletions(-) create mode 100644 src/config.c create mode 100644 src/config.h diff --git a/src/cache.c b/src/cache.c index abbf2c3..70c569a 100644 --- a/src/cache.c +++ b/src/cache.c @@ -30,7 +30,7 @@ int cache_process() { signal(SIGINT, cache_process_term); signal(SIGTERM, cache_process_term); - int shm_id = shmget(SHM_KEY, FILE_CACHE_SIZE * sizeof(cache_entry), 0); + int shm_id = shmget(SHM_KEY_CACHE, FILE_CACHE_SIZE * sizeof(cache_entry), 0); if (shm_id < 0) { fprintf(stderr, ERR_STR "Unable to create shared memory: %s" CLR_STR "\n", strerror(errno)); return -1; @@ -158,7 +158,7 @@ int cache_init() { return -1; } - int shm_id = shmget(SHM_KEY, FILE_CACHE_SIZE * sizeof(cache_entry), IPC_CREAT | IPC_EXCL | 0600); + int shm_id = shmget(SHM_KEY_CACHE, FILE_CACHE_SIZE * sizeof(cache_entry), IPC_CREAT | IPC_EXCL | 0600); if (shm_id < 0) { fprintf(stderr, ERR_STR "Unable to create shared memory: %s" CLR_STR "\n", strerror(errno)); return -2; @@ -202,7 +202,7 @@ int cache_init() { } int cache_unload() { - int shm_id = shmget(SHM_KEY, 0, 0); + int shm_id = shmget(SHM_KEY_CACHE, 0, 0); if (shm_id < 0) { fprintf(stderr, ERR_STR "Unable to create shared memory: %s" CLR_STR "\n", strerror(errno)); } else if (shmctl(shm_id, IPC_RMID, NULL) < 0) { @@ -214,7 +214,7 @@ int cache_unload() { int cache_update_entry(int entry_num, const char *filename, const char *webroot) { void *cache_ro = cache; - int shm_id = shmget(SHM_KEY, 0, 0); + int shm_id = shmget(SHM_KEY_CACHE, 0, 0); void *shm_rw = shmat(shm_id, NULL, 0); if (shm_rw == (void *) -1) { print(ERR_STR "Unable to attach shared memory (rw): %s" CLR_STR, strerror(errno)); @@ -256,7 +256,7 @@ int cache_update_entry(int entry_num, const char *filename, const char *webroot) int cache_filename_comp_invalid(const char *filename) { void *cache_ro = cache; - int shm_id = shmget(SHM_KEY, 0, 0); + int shm_id = shmget(SHM_KEY_CACHE, 0, 0); void *shm_rw = shmat(shm_id, NULL, 0); if (shm_rw == (void *) -1) { print(ERR_STR "Unable to attach shared memory (rw): %s" CLR_STR, strerror(errno)); diff --git a/src/config.c b/src/config.c new file mode 100644 index 0000000..95cbe4f --- /dev/null +++ b/src/config.c @@ -0,0 +1,17 @@ +/** + * Necronda Web Server + * Configuration file loader + * src/config.c + * Lorenz Stechauner, 2021-01-05 + */ + +#include "config.h" + + +int config_init() { + return 0; +} + +int config_load() { + return 0; +} diff --git a/src/config.h b/src/config.h new file mode 100644 index 0000000..5dda945 --- /dev/null +++ b/src/config.h @@ -0,0 +1,32 @@ +/** + * Necronda Web Server + * Configuration file loader (header file) + * src/config.h + * Lorenz Stechauner, 2021-01-05 + */ + + +#ifndef NECRONDA_SERVER_CONFIG_H +#define NECRONDA_SERVER_CONFIG_H + +typedef struct { + int type; + char name[256]; + union { + struct { + char address[256]; + unsigned short port; + }; + struct { + char webroot[256]; + unsigned char dir_mode; + }; + }; +} host_config; + + +int config_init(); + +int config_load(); + +#endif //NECRONDA_SERVER_CONFIG_H diff --git a/src/necronda-server.c b/src/necronda-server.c index ad3c02d..8524966 100644 --- a/src/necronda-server.c +++ b/src/necronda-server.c @@ -9,6 +9,7 @@ #include "necronda-server.h" +#include "config.c" #include "utils.c" #include "uri.c" #include "cache.c" diff --git a/src/necronda-server.h b/src/necronda-server.h index 8fafa1a..0a586c4 100644 --- a/src/necronda-server.h +++ b/src/necronda-server.h @@ -39,9 +39,11 @@ #define CHUNK_SIZE 4096 #define CLIENT_MAX_HEADER_SIZE 8192 #define FILE_CACHE_SIZE 1024 -#define SHM_KEY 255641 #define GEOIP_MAX_SIZE 8192 +#define SHM_KEY_CACHE 255641 +#define SHM_KEY_CONFIG 255642 + #define ERR_STR "\x1B[1;31m" #define CLR_STR "\x1B[0m" #define BLD_STR "\x1B[1m"