From f3d50195e43fd33e7f36e4e55a84af790b7de5d1 Mon Sep 17 00:00:00 2001 From: Danny Holman Date: Wed, 26 Jul 2023 11:40:36 -0500 Subject: common: create the common directory Create a directory for files that are shared between the reference client and server. Refactor the build scripts to reflect this restructuring. Signed-off-by: Danny Holman --- client/Makefile.am | 3 +- client/configure.ac | 2 +- client/include/util.h | 13 -------- client/src/util.c | 76 ---------------------------------------------- common/include/util.h | 13 ++++++++ common/src/util.c | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++ server/Makefile.am | 3 +- server/include/util.h | 13 -------- server/src/util.c | 76 ---------------------------------------------- 9 files changed, 102 insertions(+), 181 deletions(-) delete mode 100644 client/include/util.h delete mode 100644 client/src/util.c create mode 100644 common/include/util.h create mode 100644 common/src/util.c delete mode 100644 server/include/util.h delete mode 100644 server/src/util.c diff --git a/client/Makefile.am b/client/Makefile.am index 4f994ee..3812ae5 100644 --- a/client/Makefile.am +++ b/client/Makefile.am @@ -1,2 +1,3 @@ bin_PROGRAMS = mrat -mrat_SOURCES = src/mini-rat.c src/util.c +mrat_SOURCES = src/mini-rat.c ../common/src/util.c +mrat_CFLAGS = -I../common/include diff --git a/client/configure.ac b/client/configure.ac index 325f582..c67c929 100644 --- a/client/configure.ac +++ b/client/configure.ac @@ -12,7 +12,7 @@ AC_CONFIG_FILES([Makefile]) AC_CHECK_HEADERS([stdio.h stdlib.h string.h arpa/inet.h sys/socket.h], [], AC_MSG_ERROR([missing required headers])) AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS+=" -Wall"]) -AX_CHECK_COMPILE_FLAG([-Wextra], [CFLAGS+= "-Wextra"]) +AX_CHECK_COMPILE_FLAG([-Wextra], [CFLAGS+=" -Wextra"]) AC_PROG_CC AC_OUTPUT diff --git a/client/include/util.h b/client/include/util.h deleted file mode 100644 index 39c130b..0000000 --- a/client/include/util.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef MRAT_UTIL_H -#define MRAT_UTIL_H - -#include - -#define container_of(ptr, type, member) ({ \ - const typeof(((type*)0)->member)*__mptr = (ptr); \ - (type*)((char*)__mptr - offsetof(type, member)); }) - -char* str_strip(char *str); -char** str_split(char *str, const char *delim); - -#endif diff --git a/client/src/util.c b/client/src/util.c deleted file mode 100644 index f9053f5..0000000 --- a/client/src/util.c +++ /dev/null @@ -1,76 +0,0 @@ -#include -#include -#include - -char* str_rstrip(char *str) { - size_t len = strlen(str) - 1; - int brakes = 1; - while (brakes) { - switch (str[len]) { - case '\n': - str[len] = '\0'; - len--; - break; - case '\t': - str[len] = '\0'; - len--; - break; - case ' ': - str[len] = '\0'; - len--; - break; - default: - brakes = 0; - break; - } - } - return str; -} - -char* str_lstrip(char *str) { - int brakes = 1; - while (brakes) { - switch (str[0]) { - case '\n': - str[0] = '\0'; - str++; - break; - case '\t': - str[0] = '\0'; - str++; - break; - case ' ': - str[0] = '\0'; - str++; - break; - default: - brakes = 0; - break; - } - } - return str; -} - -char* str_strip(char *str) { - str_rstrip(str); - str_lstrip(str); - return str; -} - -char** str_split(char *str, const char *delim) { - size_t count = 0; - char **ret = NULL; - char *token; - char *saveptr; - token = strtok_r(str, delim, &saveptr); - while (token != NULL) { - count++; - ret = realloc(ret, sizeof(char*) * count); - ret[count-1] = strdup(str_strip(token)); - token = strtok_r(NULL, delim, &saveptr); - } - count++; - ret = realloc(ret, sizeof(char*) * count); - ret[count-1] = NULL; - return ret; -} diff --git a/common/include/util.h b/common/include/util.h new file mode 100644 index 0000000..39c130b --- /dev/null +++ b/common/include/util.h @@ -0,0 +1,13 @@ +#ifndef MRAT_UTIL_H +#define MRAT_UTIL_H + +#include + +#define container_of(ptr, type, member) ({ \ + const typeof(((type*)0)->member)*__mptr = (ptr); \ + (type*)((char*)__mptr - offsetof(type, member)); }) + +char* str_strip(char *str); +char** str_split(char *str, const char *delim); + +#endif diff --git a/common/src/util.c b/common/src/util.c new file mode 100644 index 0000000..63eefa2 --- /dev/null +++ b/common/src/util.c @@ -0,0 +1,84 @@ +#include +#include +#include + +char* str_rstrip(char *str) { + size_t len = strlen(str) - 1; + int brakes = 1; + while (brakes) { + switch (str[len]) { + case '\r': + str[len] = '\0'; + len--; + break; + case '\n': + str[len] = '\0'; + len--; + break; + case '\t': + str[len] = '\0'; + len--; + break; + case ' ': + str[len] = '\0'; + len--; + break; + default: + brakes = 0; + break; + } + } + return str; +} + +char* str_lstrip(char *str) { + int brakes = 1; + while (brakes) { + switch (str[0]) { + case '\r': + str[0] = '\0'; + str++; + break; + case '\n': + str[0] = '\0'; + str++; + break; + case '\t': + str[0] = '\0'; + str++; + break; + case ' ': + str[0] = '\0'; + str++; + break; + default: + brakes = 0; + break; + } + } + return str; +} + +char* str_strip(char *str) { + str_rstrip(str); + str_lstrip(str); + return str; +} + +char** str_split(char *str, const char *delim) { + size_t count = 0; + char **ret = NULL; + char *token; + char *saveptr; + token = strtok_r(str, delim, &saveptr); + while (token != NULL) { + count++; + ret = realloc(ret, sizeof(char*) * count); + ret[count-1] = strdup(str_strip(token)); + token = strtok_r(NULL, delim, &saveptr); + } + count++; + ret = realloc(ret, sizeof(char*) * count); + ret[count-1] = NULL; + return ret; +} diff --git a/server/Makefile.am b/server/Makefile.am index 613cd6d..8e59258 100644 --- a/server/Makefile.am +++ b/server/Makefile.am @@ -1,3 +1,4 @@ bin_PROGRAMS = mratd -mratd_SOURCES = src/mini-rat.c src/server.c src/logging.c src/session.c src/util.c +mratd_SOURCES = src/mini-rat.c src/server.c src/logging.c src/session.c ../common/src/util.c mratd_LDADD = -lpthread +mratd_CFLAGS = -I../common/include diff --git a/server/include/util.h b/server/include/util.h deleted file mode 100644 index 39c130b..0000000 --- a/server/include/util.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef MRAT_UTIL_H -#define MRAT_UTIL_H - -#include - -#define container_of(ptr, type, member) ({ \ - const typeof(((type*)0)->member)*__mptr = (ptr); \ - (type*)((char*)__mptr - offsetof(type, member)); }) - -char* str_strip(char *str); -char** str_split(char *str, const char *delim); - -#endif diff --git a/server/src/util.c b/server/src/util.c deleted file mode 100644 index f9053f5..0000000 --- a/server/src/util.c +++ /dev/null @@ -1,76 +0,0 @@ -#include -#include -#include - -char* str_rstrip(char *str) { - size_t len = strlen(str) - 1; - int brakes = 1; - while (brakes) { - switch (str[len]) { - case '\n': - str[len] = '\0'; - len--; - break; - case '\t': - str[len] = '\0'; - len--; - break; - case ' ': - str[len] = '\0'; - len--; - break; - default: - brakes = 0; - break; - } - } - return str; -} - -char* str_lstrip(char *str) { - int brakes = 1; - while (brakes) { - switch (str[0]) { - case '\n': - str[0] = '\0'; - str++; - break; - case '\t': - str[0] = '\0'; - str++; - break; - case ' ': - str[0] = '\0'; - str++; - break; - default: - brakes = 0; - break; - } - } - return str; -} - -char* str_strip(char *str) { - str_rstrip(str); - str_lstrip(str); - return str; -} - -char** str_split(char *str, const char *delim) { - size_t count = 0; - char **ret = NULL; - char *token; - char *saveptr; - token = strtok_r(str, delim, &saveptr); - while (token != NULL) { - count++; - ret = realloc(ret, sizeof(char*) * count); - ret[count-1] = strdup(str_strip(token)); - token = strtok_r(NULL, delim, &saveptr); - } - count++; - ret = realloc(ret, sizeof(char*) * count); - ret[count-1] = NULL; - return ret; -} -- cgit v1.2.3