diff options
author | dimitri staessens <dimitri.staessens@ugent.be> | 2017-10-12 02:15:39 +0200 |
---|---|---|
committer | dimitri staessens <dimitri.staessens@ugent.be> | 2017-10-14 13:19:10 +0200 |
commit | bedd1d4eadde9ab64f924c69eba716b015599e67 (patch) | |
tree | b521ef89c8752334448bee1582b51dbe97851839 /src/tools | |
parent | a483bc8597e5c19e796dc55c0587f1a045bc7281 (diff) | |
download | ouroboros-bedd1d4eadde9ab64f924c69eba716b015599e67.tar.gz ouroboros-bedd1d4eadde9ab64f924c69eba716b015599e67.zip |
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.
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/cbr/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/tools/cbr/cbr.c | 13 | ||||
-rw-r--r-- | src/tools/echo/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/tools/echo/echo.c | 16 | ||||
-rw-r--r-- | src/tools/echo/echo_server.c | 14 | ||||
-rw-r--r-- | src/tools/irm/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/tools/operf/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/tools/operf/operf.c | 13 | ||||
-rw-r--r-- | src/tools/oping/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/tools/oping/oping.c | 13 |
10 files changed, 7 insertions, 72 deletions
diff --git a/src/tools/cbr/CMakeLists.txt b/src/tools/cbr/CMakeLists.txt index 1883141c..2a64a65b 100644 --- a/src/tools/cbr/CMakeLists.txt +++ b/src/tools/cbr/CMakeLists.txt @@ -11,6 +11,6 @@ set(SOURCE_FILES add_executable(cbr ${SOURCE_FILES}) -target_link_libraries(cbr LINK_PUBLIC ouroboros) +target_link_libraries(cbr LINK_PUBLIC ouroboros-dev) install(TARGETS cbr RUNTIME DESTINATION usr/bin) diff --git a/src/tools/cbr/cbr.c b/src/tools/cbr/cbr.c index 14613198..afa9b535 100644 --- a/src/tools/cbr/cbr.c +++ b/src/tools/cbr/cbr.c @@ -72,7 +72,6 @@ int main(int argc, char ** argv) int ret = 0; char * rem = NULL; char * s_apn = NULL; - char ** argv_dup = argv; bool server = false; @@ -129,18 +128,8 @@ int main(int argc, char ** argv) } if (server) { - if (ouroboros_init(argv_dup[0]) < 0) { - printf("Failed to init.\n"); - exit(EXIT_FAILURE); - } - ret = server_main(); } else { - if (ouroboros_init(NULL) < 0) { - printf("Failed to init.\n"); - exit(EXIT_FAILURE); - } - if (s_apn == NULL) { printf("No server specified.\n"); usage(); @@ -150,7 +139,5 @@ int main(int argc, char ** argv) ret = client_main(s_apn, duration, size, rate, flood, sleep); } - ouroboros_fini(); - return ret; } 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 <ouroboros/dev.h> -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) { diff --git a/src/tools/irm/CMakeLists.txt b/src/tools/irm/CMakeLists.txt index 895bc746..03c1490a 100644 --- a/src/tools/irm/CMakeLists.txt +++ b/src/tools/irm/CMakeLists.txt @@ -29,6 +29,6 @@ set(SOURCE_FILES add_executable(irm ${SOURCE_FILES}) -target_link_libraries(irm LINK_PUBLIC ouroboros) +target_link_libraries(irm LINK_PUBLIC ouroboros-irm) install(TARGETS irm RUNTIME DESTINATION sbin) diff --git a/src/tools/operf/CMakeLists.txt b/src/tools/operf/CMakeLists.txt index 906bab7b..271a992d 100644 --- a/src/tools/operf/CMakeLists.txt +++ b/src/tools/operf/CMakeLists.txt @@ -16,6 +16,6 @@ set(SOURCE_FILES add_executable(operf ${SOURCE_FILES}) -target_link_libraries(operf LINK_PUBLIC ${LIBM_LIBRARIES} ouroboros) +target_link_libraries(operf LINK_PUBLIC ${LIBM_LIBRARIES} ouroboros-dev) install(TARGETS operf RUNTIME DESTINATION usr/bin) diff --git a/src/tools/operf/operf.c b/src/tools/operf/operf.c index 62adcdb7..1c975ae1 100644 --- a/src/tools/operf/operf.c +++ b/src/tools/operf/operf.c @@ -88,7 +88,6 @@ int main(int argc, char ** argv) int ret = -1; char * rem = NULL; bool serv = false; - char ** argv_dup = argv; argc--; argv++; @@ -141,18 +140,8 @@ int main(int argc, char ** argv) } if (serv) { - if (ouroboros_init(argv_dup[0])) { - printf("Failed to init AP.\n"); - exit(EXIT_FAILURE); - } - ret = server_main(); } else { - if (ouroboros_init(NULL)) { - printf("Failed to init AP.\n"); - exit(EXIT_FAILURE); - } - if (client.s_apn == NULL) { printf("No server specified.\n"); usage(); @@ -172,8 +161,6 @@ int main(int argc, char ** argv) ret = client_main(); } - ouroboros_fini(); - if (ret < 0) exit(EXIT_FAILURE); diff --git a/src/tools/oping/CMakeLists.txt b/src/tools/oping/CMakeLists.txt index b95add7e..d3146780 100644 --- a/src/tools/oping/CMakeLists.txt +++ b/src/tools/oping/CMakeLists.txt @@ -18,6 +18,6 @@ set(SOURCE_FILES add_executable(oping ${SOURCE_FILES}) -target_link_libraries(oping LINK_PUBLIC ${LIBM_LIBRARIES} ouroboros) +target_link_libraries(oping LINK_PUBLIC ${LIBM_LIBRARIES} ouroboros-dev) install(TARGETS oping RUNTIME DESTINATION usr/bin) diff --git a/src/tools/oping/oping.c b/src/tools/oping/oping.c index bca4f80b..a76f0fec 100644 --- a/src/tools/oping/oping.c +++ b/src/tools/oping/oping.c @@ -101,7 +101,6 @@ int main(int argc, char ** argv) int ret = -1; char * rem = NULL; bool serv = false; - char ** argv_dup = argv; argc--; argv++; @@ -140,18 +139,8 @@ int main(int argc, char ** argv) } if (serv) { - if (ouroboros_init(argv_dup[0])) { - printf("Failed to init AP.\n"); - exit(EXIT_FAILURE); - } - ret = server_main(); } else { - if (ouroboros_init(NULL)) { - printf("Failed to init AP.\n"); - exit(EXIT_FAILURE); - } - if (client.s_apn == NULL) { printf("No server specified.\n"); usage(); @@ -180,8 +169,6 @@ int main(int argc, char ** argv) ret = client_main(); } - ouroboros_fini(); - if (ret < 0) exit(EXIT_FAILURE); |