summaryrefslogtreecommitdiff
path: root/src/tools
diff options
context:
space:
mode:
authordimitri staessens <dimitri.staessens@ugent.be>2017-10-12 02:15:39 +0200
committerdimitri staessens <dimitri.staessens@ugent.be>2017-10-14 13:19:10 +0200
commitbedd1d4eadde9ab64f924c69eba716b015599e67 (patch)
treeb521ef89c8752334448bee1582b51dbe97851839 /src/tools
parenta483bc8597e5c19e796dc55c0587f1a045bc7281 (diff)
downloadouroboros-bedd1d4eadde9ab64f924c69eba716b015599e67.zip
ouroboros-bedd1d4eadde9ab64f924c69eba716b015599e67.tar.gz
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.txt2
-rw-r--r--src/tools/cbr/cbr.c13
-rw-r--r--src/tools/echo/CMakeLists.txt2
-rw-r--r--src/tools/echo/echo.c16
-rw-r--r--src/tools/echo/echo_server.c14
-rw-r--r--src/tools/irm/CMakeLists.txt2
-rw-r--r--src/tools/operf/CMakeLists.txt2
-rw-r--r--src/tools/operf/operf.c13
-rw-r--r--src/tools/oping/CMakeLists.txt2
-rw-r--r--src/tools/oping/oping.c13
10 files changed, 7 insertions, 72 deletions
diff --git a/src/tools/cbr/CMakeLists.txt b/src/tools/cbr/CMakeLists.txt
index 1883141..2a64a65 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 1461319..afa9b53 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 7cecfe5..0cca846 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 d07d99a..91ab552 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 1e57ed6..14e0aa5 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 895bc74..03c1490 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 906bab7..271a992 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 62adcdb..1c975ae 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 b95add7..d314678 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 bca4f80..a76f0fe 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);