diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4d80b81..25f8d57 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -30,6 +30,9 @@ add_executable("f2b-filter-test" ${SOURCES}) set(SOURCES "strlcpy.c" "backend-test.c" "log.c" "config.c" "backend.c") add_executable("f2b-backend-test" ${SOURCES}) +set(SOURCES "strlcpy.c" "csocket-test.c" "log.c" "buf.c" "commands.c" "csocket.c") +add_executable("f2b-csocket-test" ${SOURCES}) + if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") target_link_libraries("f2b" "dl") target_link_libraries("f2b-source-test" "dl") diff --git a/src/csocket-test.c b/src/csocket-test.c new file mode 100644 index 0000000..933ae53 --- /dev/null +++ b/src/csocket-test.c @@ -0,0 +1,33 @@ +#include "common.h" +#include "buf.h" +#include "log.h" +#include "commands.h" +#include "csocket.h" + +static int run = 1; + +void +cmd_handler(const f2b_cmd_t *cmd, f2b_buf_t *res) { + fprintf(stdout, "[handler] received cmd with type %d and %d args:\n", cmd->type, cmd->argc); + for (int i = 0; i < cmd->argc; i++) { + fprintf(stdout, "[handler] arg %d : %s\n", i + 1, cmd->args[i]); + } + UNUSED(res); + return; +} + +int main(void) { + f2b_csock_t *csock = NULL; + + if ((csock = f2b_csocket_create(DEFAULT_CSOCKET_PATH)) == NULL) { + perror("f2b_csocket_create()"); + } + + while (run) { + f2b_csocket_poll(csock, cmd_handler); + /* TODO: sleep 0.1s */ + } + f2b_csocket_destroy(csock); + + return 0; +}