diff --git a/include/utils/error.h b/include/utils/error.h index beb9759..9144e51 100644 --- a/include/utils/error.h +++ b/include/utils/error.h @@ -1,29 +1,28 @@ #ifndef CWS_ERROR_H #define CWS_ERROR_H +#define ARR_SIZE(arr) (sizeof(arr) / sizeof(arr[0])) + typedef enum cws_server_ret { CWS_SERVER_OK, - CWS_SERVER_CONFIG, - CWS_SERVER_FD_ERROR, - CWS_SERVER_CLIENT_NOT_FOUND, - CWS_SERVER_CLIENT_DISCONNECTED, + CWS_SERVER_FD_NONBLOCKING_ERROR, + CWS_SERVER_EPOLL_CREATE_ERROR, CWS_SERVER_CLIENT_DISCONNECTED_ERROR, CWS_SERVER_HTTP_PARSE_ERROR, + CWS_SERVER_CONFIG, CWS_SERVER_GETADDRINFO_ERROR, CWS_SERVER_SOCKET_ERROR, CWS_SERVER_SETSOCKOPT_ERROR, CWS_SERVER_BIND_ERROR, CWS_SERVER_LISTEN_ERROR, - CWS_SERVER_EPOLL_ADD_ERROR, - CWS_SERVER_EPOLL_DEL_ERROR, - CWS_SERVER_FD_NONBLOCKING_ERROR, - CWS_SERVER_ACCEPT_CLIENT_ERROR, - CWS_SERVER_HASHMAP_INIT, - CWS_SERVER_MALLOC_ERROR, - CWS_SERVER_REQUEST_TOO_LARGE, - CWS_SERVER_THREADPOOL_ERROR, - CWS_SERVER_EPOLL_CREATE_ERROR, CWS_SERVER_WORKER_ERROR, } cws_server_ret; +typedef struct cws_error { + cws_server_ret code; + char *str; +} cws_error_s; + +char *cws_error_str(cws_server_ret code); + #endif diff --git a/src/core/epoll_utils.c b/src/core/epoll.c similarity index 100% rename from src/core/epoll_utils.c rename to src/core/epoll.c diff --git a/src/core/socket_utils.c b/src/core/socket.c similarity index 100% rename from src/core/socket_utils.c rename to src/core/socket.c diff --git a/src/meson.build b/src/meson.build index 6a91fbc..868cbae 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,12 +1,16 @@ server = files('main.c') server += files( - 'core/epoll_utils.c', + 'core/epoll.c', 'core/server.c', - 'core/socket_utils.c', + 'core/socket.c', 'core/worker.c', ) server += files('config/config.c') -server += files('utils/hash_utils.c', 'utils/net_utils.c') +server += files( + 'utils/error.c', + 'utils/hash.c', + 'utils/net.c', +) server += files( 'http/mime.c', 'http/request.c', diff --git a/src/utils/error.c b/src/utils/error.c new file mode 100644 index 0000000..66c9a07 --- /dev/null +++ b/src/utils/error.c @@ -0,0 +1,16 @@ +#include "utils/error.h" + +#include + +/* @TODO: complete this array */ +static cws_error_s errors[] = {{CWS_SERVER_OK, "No error found"}}; + +char *cws_error_str(cws_server_ret code) { + for (unsigned long i = 0; i < ARR_SIZE(errors); ++i) { + if (errors[i].code == code) { + return errors[i].str; + } + } + + return NULL; +} diff --git a/src/utils/hash_utils.c b/src/utils/hash.c similarity index 100% rename from src/utils/hash_utils.c rename to src/utils/hash.c diff --git a/src/utils/net_utils.c b/src/utils/net.c similarity index 100% rename from src/utils/net_utils.c rename to src/utils/net.c