diff --git a/src/server/config.c b/src/common/config.c similarity index 99% rename from src/server/config.c rename to src/common/config.c index 4630b582e2e12eca4fba234fa973c16bc19b0584..2328a885debf7d36905a4d19047b505e987d39a1 100644 --- a/src/server/config.c +++ b/src/common/config.c @@ -9,7 +9,7 @@ */ #include <stdio.h> #include <stdlib.h> -#include "common.h" +#include "config.h" #include <regex.h> #include <string.h> #include <ctype.h> diff --git a/src/common/config.h b/src/common/config.h new file mode 100644 index 0000000000000000000000000000000000000000..1e7583ed91a03fe1588bdfa97950ed3b4d8f2628 --- /dev/null +++ b/src/common/config.h @@ -0,0 +1,32 @@ +/* + * OpenDispense2 + * + * This code is published under the terms of the Acess licence. + * See the file COPYING for details. + * + * config.h - Config Header + */ +#ifndef _CONFIG_H_ +#define _CONFIG_H_ + +#include <regex.h> +extern void CompileRegex(regex_t *Regex, const char *Pattern, int Flags); +extern int RunRegex(regex_t *regex, const char *string, int nMatches, regmatch_t *matches, const char *errorMessage); + +// === HELPER MACROS === +#define _EXPSTR(x) #x +#define EXPSTR(x) _EXPSTR(x) + +#define ASSERT(cnd) do{if(!(cnd)){fprintf(stderr, "ASSERT failed at "__FILE__":"EXPSTR(__LINE__)" - "EXPSTR(cnd)"\n");exit(-1);}}while(0) + + + +// --- Config Database --- +extern void Config_ParseFile(const char *Filename); +extern void Config_AddValue(const char *Key, const char *Value); +extern int Config_GetValueCount(const char *KeyName); +extern const char *Config_GetValue(const char *KeyName, int Index); +extern int Config_GetValue_Bool(const char *KeyName, int Index); +extern int Config_GetValue_Int(const char *KeyName, int Index); + +#endif diff --git a/src/server/Makefile b/src/server/Makefile index f2ca96826b8f27f96f8d2ab9bf419fd9512cddd8..dcd6f0d10d70d05994e21756eb233c5f093fa445 100644 --- a/src/server/Makefile +++ b/src/server/Makefile @@ -29,10 +29,16 @@ install: $(BIN) $(BIN): $(OBJ) $(CC) -o $(BIN) $(OBJ) $(LINKFLAGS) -obj/%.o: %.c +obj/%.o: %.c @mkdir -p $(dir $@) $(CC) -c $< -o $@ $(CFLAGS) $(CPPFLAGS) @cpp $< -MM -MF $@.d + +obj/%.o: ../common/%.c + @mkdir -p $(dir $@) + $(CC) -c $< -o $@ $(CFLAGS) $(CPPFLAGS) + @cpp $< -MM -MF $@.d + -include $(DEPFILES) diff --git a/src/server/common.h b/src/server/common.h index 8a804972fff38e6b1707084e75da0e031ae4b5e8..1bdca84275dc4ad392bce589b0c536d00f9f9ffe 100644 --- a/src/server/common.h +++ b/src/server/common.h @@ -17,12 +17,8 @@ #define DEFAULT_ITEM_FILE "/etc/opendispense/items.cfg" // === HELPER MACROS === -#define _EXPSTR(x) #x -#define EXPSTR(x) _EXPSTR(x) -#define UNUSED(var) unused__##var __attribute__((__unused__)) - -#define ASSERT(cnd) do{if(!(cnd)){fprintf(stderr, "ASSERT failed at "__FILE__":"EXPSTR(__LINE__)" - "EXPSTR(cnd)"\n");exit(-1);}}while(0) +#define UNUSED(var) unused__##var __attribute__((__unused__)) // === STRUCTURES === typedef struct sItem tItem; @@ -103,12 +99,4 @@ extern void Log_Info(const char *Format, ...); #define Debug_Notice(msg, v...) fprintf(stderr, "%08llun: "msg"\n", (unsigned long long)time(NULL) ,##v) #define Debug_Debug(msg, v...) fprintf(stderr, "%08llud: "msg"\n", (unsigned long long)time(NULL) ,##v) -// --- Config Database --- -extern void Config_ParseFile(const char *Filename); -extern void Config_AddValue(const char *Key, const char *Value); -extern int Config_GetValueCount(const char *KeyName); -extern const char *Config_GetValue(const char *KeyName, int Index); -extern int Config_GetValue_Bool(const char *KeyName, int Index); -extern int Config_GetValue_Int(const char *KeyName, int Index); - #endif diff --git a/src/server/handler_coke.c b/src/server/handler_coke.c index ff051c8400b283f9a4239b85f824784bd03220e4..b9a9cf3271bbbd6e0a30e8441d7eee1ef165855b 100644 --- a/src/server/handler_coke.c +++ b/src/server/handler_coke.c @@ -11,6 +11,7 @@ * - Remember, the coke machine echoes your text back to you! */ #include "common.h" +#include "../common/config.h" #include <stdio.h> #include <string.h> #include <stdarg.h> diff --git a/src/server/main.c b/src/server/main.c index 284002b487ac66315c5392300576ff05ba376a3d..c8be473bace3a469b9c03c5c953362281c021124 100644 --- a/src/server/main.c +++ b/src/server/main.c @@ -21,6 +21,7 @@ #include <syslog.h> #include <pthread.h> #include "../cokebank.h" +#include "../common/config.h" // === IMPORTS === extern void Init_Handlers(void); diff --git a/src/server/server.c b/src/server/server.c index c41cc2c30e899ce1ccca3a56ebca1a0b2450dc74..11846bb21fceb1836dba743e28f60e3bdfbddd76 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -10,6 +10,7 @@ #include <stdio.h> #include <stdlib.h> #include "common.h" +#include "../common/config.h" #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h>