From bedd1d4eadde9ab64f924c69eba716b015599e67 Mon Sep 17 00:00:00 2001 From: dimitri staessens Date: Thu, 12 Oct 2017 02:15:39 +0200 Subject: lib: Deprecate ouroboros_init and ourboros_fini This commit deprecates ouroboros_init and ouroboros_fini and adds them as a constructor or destructor, causing these function to be run automatically when a program that links to the library calls and exits main(). For this to fully work, the library had to be split so that we can avoid the irmd calling these functions (the IRMd has to create the shm structures on which these calls depend). The library is split in 3 parts: libouroboros-dev, libouroboros-irm and libouroboros-common. The latter is linked to the other two so that including libouroboros-dev or libouroboros-irm will also link libouroboros-common. --- src/tools/echo/CMakeLists.txt | 2 +- src/tools/echo/echo.c | 16 ++-------------- src/tools/echo/echo_server.c | 14 -------------- 3 files changed, 3 insertions(+), 29 deletions(-) (limited to 'src/tools/echo') diff --git a/src/tools/echo/CMakeLists.txt b/src/tools/echo/CMakeLists.txt index 7cecfe50..0cca8466 100644 --- a/src/tools/echo/CMakeLists.txt +++ b/src/tools/echo/CMakeLists.txt @@ -11,6 +11,6 @@ set(SOURCE_FILES add_executable(echo-app ${SOURCE_FILES}) -target_link_libraries(echo-app LINK_PUBLIC ouroboros) +target_link_libraries(echo-app LINK_PUBLIC ouroboros-dev) install(TARGETS echo-app RUNTIME DESTINATION usr/bin) diff --git a/src/tools/echo/echo.c b/src/tools/echo/echo.c index d07d99a3..91ab552d 100644 --- a/src/tools/echo/echo.c +++ b/src/tools/echo/echo.c @@ -41,7 +41,6 @@ static void usage(void) int main(int argc, char ** argv) { int ret = -1; - char ** argv_dup = argv; bool server = false; argc--; @@ -58,21 +57,10 @@ int main(int argc, char ** argv) argv++; } - if (server) { - if (ouroboros_init(argv_dup[0])) { - printf("Failed to init AP.\n"); - return -1; - } + if (server) ret = server_main(); - } else { - if (ouroboros_init(NULL)) { - printf("Failed to init AP.\n"); - return -1; - } + else ret = client_main(); - } - - ouroboros_fini(); return ret; } diff --git a/src/tools/echo/echo_server.c b/src/tools/echo/echo_server.c index 1e57ed60..14e0aa58 100644 --- a/src/tools/echo/echo_server.c +++ b/src/tools/echo/echo_server.c @@ -27,14 +27,6 @@ #include -void shutdown_server(int signo) -{ - (void) signo; - - ouroboros_fini(); - exit(EXIT_SUCCESS); -} - int server_main(void) { int fd = 0; @@ -44,12 +36,6 @@ int server_main(void) printf("Starting the server.\n"); - /* Manual cleanup is required for now */ - if (signal(SIGINT, shutdown_server) == SIG_ERR) { - printf("Can't install signal handler.\n"); - return -1; - } - while (true) { fd = flow_accept(&qs, NULL); if (fd < 0) { -- cgit v1.2.3