diff options
Diffstat (limited to 'src')
28 files changed, 86 insertions, 140 deletions
diff --git a/src/ipcpd/ipcp.c b/src/ipcpd/ipcp.c index 9f4d9eea..44dbb52a 100644 --- a/src/ipcpd/ipcp.c +++ b/src/ipcpd/ipcp.c @@ -544,7 +544,6 @@ static int parse_args(int    argc,  int ipcp_init(int               argc,                char **           argv, -              enum ipcp_type    type,                struct ipcp_ops * ops)  {          bool               log; @@ -558,18 +557,6 @@ int ipcp_init(int               argc,          log_init(log); -        if (type == IPCP_NORMAL) { -                if (ouroboros_init(argv[0])) { -                        log_err("Failed to init normal IPCPI."); -                        return -1; -                } -        } else { -                if (ouroboros_init(NULL)) { -                        log_err("Failed to init shim IPCPI."); -                        return -1; -                } -        } -          ipcpi.irmd_fd   = -1;          ipcpi.state     = IPCP_NULL; @@ -652,8 +639,6 @@ int ipcp_init(int               argc,   fail_serv_sock:          free(ipcpi.sock_path);   fail_sock_path: -        ouroboros_fini(); -          return ret;  } @@ -736,8 +721,6 @@ void ipcp_fini()          log_info("IPCP %d out.", getpid());          log_fini(); - -        ouroboros_fini();  }  void ipcp_set_state(enum ipcp_state state) diff --git a/src/ipcpd/ipcp.h b/src/ipcpd/ipcp.h index d47d224b..62fb310a 100644 --- a/src/ipcpd/ipcp.h +++ b/src/ipcpd/ipcp.h @@ -109,7 +109,6 @@ struct ipcp {  int             ipcp_init(int               argc,                            char **           argv, -                          enum ipcp_type    type,                            struct ipcp_ops * ops);  int             ipcp_boot(void); diff --git a/src/ipcpd/local/CMakeLists.txt b/src/ipcpd/local/CMakeLists.txt index 925092bd..788c1139 100644 --- a/src/ipcpd/local/CMakeLists.txt +++ b/src/ipcpd/local/CMakeLists.txt @@ -19,7 +19,7 @@ set(SHIM_LOCAL_SOURCES    ${CMAKE_CURRENT_SOURCE_DIR}/main.c)  add_executable(ipcpd-local ${SHIM_LOCAL_SOURCES} ${IPCP_SOURCES}) -target_link_libraries(ipcpd-local LINK_PUBLIC ouroboros) +target_link_libraries(ipcpd-local LINK_PUBLIC ouroboros-common ouroboros-dev)  include(AddCompileFlags)  if (CMAKE_BUILD_TYPE MATCHES Debug) diff --git a/src/ipcpd/local/main.c b/src/ipcpd/local/main.c index b98e144c..684949d9 100644 --- a/src/ipcpd/local/main.c +++ b/src/ipcpd/local/main.c @@ -326,7 +326,7 @@ static struct ipcp_ops local_ops = {  int main(int    argc,           char * argv[])  { -        if (ipcp_init(argc, argv, THIS_TYPE, &local_ops) < 0) { +        if (ipcp_init(argc, argv, &local_ops) < 0) {                  ipcp_create_r(getpid(), -1);                  exit(EXIT_FAILURE);          } diff --git a/src/ipcpd/normal/CMakeLists.txt b/src/ipcpd/normal/CMakeLists.txt index 8dbe4820..dd67ce05 100644 --- a/src/ipcpd/normal/CMakeLists.txt +++ b/src/ipcpd/normal/CMakeLists.txt @@ -50,7 +50,7 @@ set(SOURCE_FILES  add_executable(ipcpd-normal ${SOURCE_FILES} ${IPCP_SOURCES}    ${FLOW_ALLOC_SRCS} ${LS_PROTO_SRCS} ${KAD_PROTO_SRCS} ${ENROLL_PROTO_SRCS}) -target_link_libraries(ipcpd-normal LINK_PUBLIC ouroboros) +target_link_libraries(ipcpd-normal LINK_PUBLIC ouroboros-dev ouroboros-irm)  include(AddCompileFlags)  if (CMAKE_BUILD_TYPE MATCHES Debug) diff --git a/src/ipcpd/normal/dht.c b/src/ipcpd/normal/dht.c index 7ca555ab..161bf292 100644 --- a/src/ipcpd/normal/dht.c +++ b/src/ipcpd/normal/dht.c @@ -1420,7 +1420,9 @@ static int send_msg(struct dht * dht,                      kad_msg_t *  msg,                      uint64_t     addr)  { +#ifndef __DHT_TEST__          struct shm_du_buff * sdb; +#endif          size_t               len;          int                  retr = 0; @@ -1451,12 +1453,11 @@ static int send_msg(struct dht * dht,          if (len == 0)                  goto fail_msg; +#ifndef __DHT_TEST__          if (ipcp_sdb_reserve(&sdb, len))                  goto fail_msg; -          kad_msg__pack(msg, shm_du_buff_head(sdb)); -#ifndef __DHT_TEST__          while (retr >= 0) {                  if (dt_write_sdu(addr, QOS_CUBE_BE, dht->fd, sdb))                          retr--; @@ -1470,7 +1471,6 @@ static int send_msg(struct dht * dht,  #else          (void) addr;          (void) retr; -        ipcp_sdb_release(sdb);  #endif /* __DHT_TEST__ */          if (msg->code < KAD_STORE && dht_get_state(dht) != DHT_SHUTDOWN) @@ -2363,8 +2363,9 @@ static void * dht_handle_sdu(void * o)                  i = shm_du_buff_tail(cmd->sdb) - shm_du_buff_head(cmd->sdb);                  msg = kad_msg__unpack(NULL, i, shm_du_buff_head(cmd->sdb)); - +#ifndef __DHT_TEST__                  ipcp_sdb_release(cmd->sdb); +#endif                  free(cmd);                  if (msg == NULL) { diff --git a/src/ipcpd/normal/main.c b/src/ipcpd/normal/main.c index 8c16fd22..719be77c 100644 --- a/src/ipcpd/normal/main.c +++ b/src/ipcpd/normal/main.c @@ -299,7 +299,7 @@ static struct ipcp_ops normal_ops = {  int main(int    argc,           char * argv[])  { -        if (ipcp_init(argc, argv, THIS_TYPE, &normal_ops) < 0) { +        if (ipcp_init(argc, argv, &normal_ops) < 0) {                  log_err("Failed to init IPCP.");                  goto fail_init;          } diff --git a/src/ipcpd/normal/pol/tests/CMakeLists.txt b/src/ipcpd/normal/pol/tests/CMakeLists.txt index 55ca425a..d0652533 100644 --- a/src/ipcpd/normal/pol/tests/CMakeLists.txt +++ b/src/ipcpd/normal/pol/tests/CMakeLists.txt @@ -21,7 +21,7 @@ create_test_sourcelist(${PARENT_DIR}_tests test_suite.c    )  add_executable(${PARENT_DIR}_test EXCLUDE_FROM_ALL ${${PARENT_DIR}_tests}) -target_link_libraries(${PARENT_DIR}_test ouroboros) +target_link_libraries(${PARENT_DIR}_test ouroboros-common)  add_dependencies(check ${PARENT_DIR}_test) diff --git a/src/ipcpd/normal/tests/CMakeLists.txt b/src/ipcpd/normal/tests/CMakeLists.txt index d975caf6..be92888f 100644 --- a/src/ipcpd/normal/tests/CMakeLists.txt +++ b/src/ipcpd/normal/tests/CMakeLists.txt @@ -24,7 +24,7 @@ set_source_files_properties(${KAD_PROTO_SRCS} PROPERTIES GENERATED TRUE)  add_executable(${PARENT_DIR}_test EXCLUDE_FROM_ALL ${${PARENT_DIR}_tests}    ${KAD_PROTO_SRCS}) -target_link_libraries(${PARENT_DIR}_test ouroboros) +target_link_libraries(${PARENT_DIR}_test ouroboros-common)  add_dependencies(check ${PARENT_DIR}_test) diff --git a/src/ipcpd/shim-eth-llc/CMakeLists.txt b/src/ipcpd/shim-eth-llc/CMakeLists.txt index e10a715f..600340b7 100644 --- a/src/ipcpd/shim-eth-llc/CMakeLists.txt +++ b/src/ipcpd/shim-eth-llc/CMakeLists.txt @@ -91,8 +91,8 @@ if (HAVE_LLC)        ${NETMAP_C_INCLUDE_DIR})    endif () -  target_link_libraries(ipcpd-shim-eth-llc LINK_PUBLIC ouroboros -    ${PROTOBUF_C_LIBRARY}) +  target_link_libraries(ipcpd-shim-eth-llc LINK_PUBLIC ouroboros-common +    ouroboros-dev ${PROTOBUF_C_LIBRARY})    include(AddCompileFlags)    if (CMAKE_BUILD_TYPE MATCHES Debug) diff --git a/src/ipcpd/shim-eth-llc/main.c b/src/ipcpd/shim-eth-llc/main.c index 52b111a5..e735b651 100644 --- a/src/ipcpd/shim-eth-llc/main.c +++ b/src/ipcpd/shim-eth-llc/main.c @@ -1342,7 +1342,7 @@ static struct ipcp_ops eth_llc_ops = {  int main(int    argc,           char * argv[])  { -        if (ipcp_init(argc, argv, THIS_TYPE, ð_llc_ops) < 0) +        if (ipcp_init(argc, argv, ð_llc_ops) < 0)                  goto fail_init;          if (eth_llc_data_init() < 0) { diff --git a/src/ipcpd/shim-udp/CMakeLists.txt b/src/ipcpd/shim-udp/CMakeLists.txt index fb57778e..89a446a7 100644 --- a/src/ipcpd/shim-udp/CMakeLists.txt +++ b/src/ipcpd/shim-udp/CMakeLists.txt @@ -23,7 +23,7 @@ set(SHIM_UDP_SOURCES  add_executable(ipcpd-shim-udp ${SHIM_UDP_SOURCES} ${IPCP_SOURCES}    ${SHIM_UDP_PROTO_SRCS}) -target_link_libraries(ipcpd-shim-udp LINK_PUBLIC ouroboros +target_link_libraries(ipcpd-shim-udp LINK_PUBLIC ouroboros-common ouroboros-dev    ${PROTOBUF_C_LIBRARY})  # Find the nsupdate executable diff --git a/src/ipcpd/shim-udp/main.c b/src/ipcpd/shim-udp/main.c index d393dc4b..f8248f86 100644 --- a/src/ipcpd/shim-udp/main.c +++ b/src/ipcpd/shim-udp/main.c @@ -1113,7 +1113,7 @@ static struct ipcp_ops udp_ops = {  int main(int    argc,           char * argv[])  { -        if (ipcp_init(argc, argv, THIS_TYPE, &udp_ops) < 0) { +        if (ipcp_init(argc, argv, &udp_ops) < 0) {                  ipcp_create_r(getpid(), -1);                  exit(EXIT_FAILURE);          } diff --git a/src/irmd/CMakeLists.txt b/src/irmd/CMakeLists.txt index de883d63..55288263 100644 --- a/src/irmd/CMakeLists.txt +++ b/src/irmd/CMakeLists.txt @@ -41,7 +41,7 @@ set(SOURCE_FILES  add_executable (irmd ${SOURCE_FILES}) -target_link_libraries (irmd LINK_PUBLIC ouroboros) +target_link_libraries (irmd LINK_PUBLIC ouroboros-common)  include(AddCompileFlags)  if (CMAKE_BUILD_TYPE MATCHES Debug) diff --git a/src/irmd/main.c b/src/irmd/main.c index 99a34af2..80417806 100644 --- a/src/irmd/main.c +++ b/src/irmd/main.c @@ -1120,7 +1120,6 @@ static int flow_accept(pid_t              api,          e = api_table_get(&irmd.api_table, api);          if (e == NULL) { -                /* Can only happen if server called ouroboros_init(NULL); */                  pthread_rwlock_unlock(&irmd.reg_lock);                  log_err("Unknown instance %d calling accept.", api);                  return -EINVAL; diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 6ab5ebc8..c1b8f354 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -73,7 +73,7 @@ if (LIBGCRYPT_LIBRARIES)      string(REGEX REPLACE "^#define GCRYPT_VERSION \"(.*)\".*$" "\\1"        GCVER "${GCSTR}")      if (NOT GCVER VERSION_LESS "1.7.0") -      set (DISABLE_LIBGCRYPT FALSE CACHE BOOL "Disable libgcrypt support") +      set(DISABLE_LIBGCRYPT FALSE CACHE BOOL "Disable libgcrypt support")        if (NOT DISABLE_LIBGCRYPT)          message(STATUS "libgcrypt support enabled")          set(HAVE_LIBGCRYPT TRUE CACHE INTERNAL "") @@ -94,7 +94,7 @@ endif ()  find_package(OpenSSL QUIET)  if (OPENSSL_FOUND) -  set (DISABLE_OPENSSL FALSE CACHE BOOL "Disable OpenSSL support") +  set(DISABLE_OPENSSL FALSE CACHE BOOL "Disable OpenSSL support")    if (NOT DISABLE_OPENSSL)      message(STATUS "OpenSSL support enabled")      set(HAVE_OPENSSL TRUE) @@ -104,7 +104,7 @@ if (OPENSSL_FOUND)  endif ()  if (NOT HAVE_OPENSSL) -  set (OPENSSL_INCLUDE_DIR "") +  set(OPENSSL_INCLUDE_DIR "")  endif ()  if (APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") @@ -129,12 +129,12 @@ mark_as_advanced(LIBRT_LIBRARIES LIBPTHREAD_LIBRARIES    LIBGCRYPT_LIBRARIES OPENSSL_LIBRARIES SYS_RND_INCLUDE_DIR    LIBGCRYPT_INCLUDE_DIR SYS_RND_HDR) -math(EXPR SHM_BUFFER_EXPR "1 << 20") +math(EXPR SHM_BUFFER_EXPR "1 << 17")  set(SHM_BUFFER_SIZE ${SHM_BUFFER_EXPR} CACHE STRING      "Number of blocks in SDU buffer, must be a power of 2") -set(SYS_MAX_FLOWS 4096 CACHE STRING +set(SYS_MAX_FLOWS 10240 CACHE STRING    "Maximum number of total flows for this system") -set(AP_MAX_FLOWS 1024 CACHE STRING +set(AP_MAX_FLOWS 4096 CACHE STRING    "Maximum number of flows in an application")  set(AP_RES_FDS 64 CACHE STRING    "Number of reserved flow descriptors per application") @@ -148,7 +148,7 @@ if (NOT APPLE)    set(PTHREAD_COND_CLOCK "CLOCK_MONOTONIC" CACHE STRING      "Clock to use for condition variable timing")  else () -  set (PTHREAD_COND_CLOCK "CLOCK_REALTIME" CACHE INTERNAL +  set(PTHREAD_COND_CLOCK "CLOCK_REALTIME" CACHE INTERNAL      "Clock to use for condition variable timing")  endif ()  set(SOCKET_TIMEOUT 1000 CACHE STRING @@ -168,17 +168,24 @@ set(SHM_RDRB_BLOCK_SIZE "sysconf(_SC_PAGESIZE)" CACHE STRING  set(SHM_RBUFF_LOCKLESS 0 CACHE BOOL    "Enable shared memory lockless rbuff support") -set(SOURCE_FILES +set(SOURCE_FILES_DEV    # Add source files here -  bitmap.c -  btree.c    cacep.c -  crc32.c    dev.c    frct_pci.c +  timerwheel.c +  ) + +set(SOURCE_FILES_IRM +  irm.c +) + +set(SOURCE_FILES_COMMON +  bitmap.c +  btree.c +  crc32.c    hash.c    hashtable.c -  irm.c    list.c    lockfile.c    logs.c @@ -195,29 +202,48 @@ set(SOURCE_FILES    shm_rdrbuff.c    sockets.c    time_utils.c -  timerwheel.c    tpm.c    utils.c -  ) +)  configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.h.in"    "${CMAKE_CURRENT_BINARY_DIR}/config.h" @ONLY) -add_library(ouroboros SHARED ${SOURCE_FILES} ${IRM_PROTO_SRCS} +add_library(ouroboros-common SHARED ${SOURCE_FILES_COMMON} ${IRM_PROTO_SRCS} +  ${IPCP_PROTO_SRCS} ${DIF_CONFIG_PROTO_SRCS}) + +add_library(ouroboros-dev SHARED ${SOURCE_FILES_DEV} ${IRM_PROTO_SRCS}    ${IPCP_PROTO_SRCS} ${DIF_CONFIG_PROTO_SRCS} ${CACEP_PROTO_SRCS}) +add_library(ouroboros-irm SHARED ${SOURCE_FILES_IRM} ${IRM_PROTO_SRCS} +  ${IPCP_PROTO_SRCS} ${DIF_CONFIG_PROTO_SRCS}) +  include(AddCompileFlags)  if (CMAKE_BUILD_TYPE MATCHES Debug) -  add_compile_flags(ouroboros -DCONFIG_OUROBOROS_DEBUG) +  add_compile_flags(ouroboros-common -DCONFIG_OUROBOROS_DEBUG) +  add_compile_flags(ouroboros-dev -DCONFIG_OUROBOROS_DEBUG) +  add_compile_flags(ouroboros-irm -DCONFIG_OUROBOROS_DEBUG)  endif (CMAKE_BUILD_TYPE MATCHES Debug) -target_link_libraries(ouroboros ${LIBRT_LIBRARIES} +target_link_libraries(ouroboros-common ${LIBRT_LIBRARIES}    ${LIBPTHREAD_LIBRARIES} ${PROTOBUF_C_LIBRARY} ${OPENSSL_LIBRARIES}    ${LIBGCRYPT_LIBRARIES} ${FUSE_LIBRARIES}) -install(TARGETS ouroboros LIBRARY DESTINATION usr/lib) +target_link_libraries(ouroboros-dev ouroboros-common) + +target_link_libraries(ouroboros-irm ouroboros-common) + +install(TARGETS ouroboros-common LIBRARY DESTINATION usr/lib) +install(TARGETS ouroboros-dev LIBRARY DESTINATION usr/lib) +install(TARGETS ouroboros-irm LIBRARY DESTINATION usr/lib) + +target_include_directories(ouroboros-common PUBLIC ${CMAKE_CURRENT_BINARY_DIR} +  ${SYS_RND_HDR} ${LIBGCRYPT_INCLUDE_DIR} ${OPENSSL_INCLUDE_DIR}) + +target_include_directories(ouroboros-dev PUBLIC ${CMAKE_CURRENT_BINARY_DIR} +  ${SYS_RND_HDR} ${LIBGCRYPT_INCLUDE_DIR} ${OPENSSL_INCLUDE_DIR}) -target_include_directories(ouroboros PUBLIC ${CMAKE_CURRENT_BINARY_DIR} +target_include_directories(ouroboros-irm PUBLIC ${CMAKE_CURRENT_BINARY_DIR}    ${SYS_RND_HDR} ${LIBGCRYPT_INCLUDE_DIR} ${OPENSSL_INCLUDE_DIR})  add_subdirectory(tests) diff --git a/src/lib/dev.c b/src/lib/dev.c index 9cb6f2ed..99d3ecec 100644 --- a/src/lib/dev.c +++ b/src/lib/dev.c @@ -595,11 +595,16 @@ static int flow_init(int       port_id,          return fd;  } -int ouroboros_init(const char * ap_name) +__attribute__((constructor)) static void init(int     argc, +                                              char ** argv, +                                              char ** envp)  { -        int i; -        int j; -        int ret = -ENOMEM; +        const char * ap_name = argv[0]; +        int          i; +        int          j; + +        (void) argc; +        (void) envp;          assert(ai.ap_name == NULL); @@ -618,10 +623,8 @@ int ouroboros_init(const char * ap_name)                  goto fail_fqset;          ai.rdrb = shm_rdrbuff_open(); -        if (ai.rdrb == NULL) { -                ret = -EIRMD; +        if (ai.rdrb == NULL)                  goto fail_rdrb; -        }          ai.flows = malloc(sizeof(*ai.flows) * AP_MAX_FLOWS);          if (ai.flows == NULL) @@ -651,10 +654,8 @@ int ouroboros_init(const char * ap_name)                  if (ai.ap_name == NULL)                          goto fail_ap_name; -                if (api_announce((char *) ai.ap_name)) { -                        ret = -EIRMD; +                if (api_announce((char *) ai.ap_name))                          goto fail_announce; -                }          }          for (i = 0; i < SYS_MAX_FLOWS; ++i) { @@ -680,7 +681,7 @@ int ouroboros_init(const char * ap_name)          if (ai.tw == NULL)                  goto fail_timerwheel; -        return 0; +        return;   fail_timerwheel:          pthread_rwlock_destroy(&ai.lock); @@ -710,10 +711,12 @@ int ouroboros_init(const char * ap_name)   fail_fqueues:          bmp_destroy(ai.fds);   fail_fds: -        return ret; +        fprintf(stderr, "FATAL: ouroboros-dev init failed. " +                        "Make sure an IRMd is running.\n\n"); +        exit(EXIT_FAILURE);  } -void ouroboros_fini() +__attribute__((destructor)) static void fini(void)  {          int i = 0; diff --git a/src/lib/tests/CMakeLists.txt b/src/lib/tests/CMakeLists.txt index 0edd4a42..a9ff207e 100644 --- a/src/lib/tests/CMakeLists.txt +++ b/src/lib/tests/CMakeLists.txt @@ -22,7 +22,7 @@ create_test_sourcelist(${PARENT_DIR}_tests test_suite.c  add_executable(${PARENT_DIR}_test EXCLUDE_FROM_ALL ${${PARENT_DIR}_tests}) -target_link_libraries(${PARENT_DIR}_test ouroboros) +target_link_libraries(${PARENT_DIR}_test ouroboros-common)  add_dependencies(check ${PARENT_DIR}_test) 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);  | 
