diff options
author | Dimitri Staessens <dimitri.staessens@ugent.be> | 2018-02-14 13:55:00 +0100 |
---|---|---|
committer | Sander Vrijders <sander.vrijders@ugent.be> | 2018-02-14 17:58:51 +0100 |
commit | 91012d9af758a48c4c57fc940dfcc8a581fa46ac (patch) | |
tree | 96495c10b615ddafa94ebcfa1a0977109ec0ffe8 /src/tools/oping | |
parent | e095d0ade3035c714768266755c9c61acfc2ad0f (diff) | |
download | ouroboros-91012d9af758a48c4c57fc940dfcc8a581fa46ac.tar.gz ouroboros-91012d9af758a48c4c57fc940dfcc8a581fa46ac.zip |
build: Allow out-of-tree build of tools
This removes the dependencies for the tools on some ouroboros internal
headers (endian.h and time_utils.h) so they can be built out-of-tree.
The echo-app tool has been renamed oecho and the cbr tool has been
renamed ocbr.
Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
Diffstat (limited to 'src/tools/oping')
-rw-r--r-- | src/tools/oping/CMakeLists.txt | 5 | ||||
-rw-r--r-- | src/tools/oping/oping.c | 15 | ||||
-rw-r--r-- | src/tools/oping/oping_client.c | 28 | ||||
-rw-r--r-- | src/tools/oping/oping_server.c | 4 |
4 files changed, 25 insertions, 27 deletions
diff --git a/src/tools/oping/CMakeLists.txt b/src/tools/oping/CMakeLists.txt index ebf96bdb..31a4f961 100644 --- a/src/tools/oping/CMakeLists.txt +++ b/src/tools/oping/CMakeLists.txt @@ -4,6 +4,11 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(${CMAKE_SOURCE_DIR}/include) include_directories(${CMAKE_BINARY_DIR}/include) +get_filename_component(CURRENT_SOURCE_PARENT_DIR + ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY) + +include_directories(${CURRENT_SOURCE_PARENT_DIR}) + find_library(LIBM_LIBRARIES m) if(NOT LIBM_LIBRARIES) message(FATAL_ERROR "libm not found") diff --git a/src/tools/oping/oping.c b/src/tools/oping/oping.c index 5e01e026..3c1d4fe9 100644 --- a/src/tools/oping/oping.c +++ b/src/tools/oping/oping.c @@ -37,17 +37,26 @@ */ #define _POSIX_C_SOURCE 199506L -#define __XSI_VISIBLE 500 +#define __XSI_VISIBLE 500 -#include <ouroboros/endian.h> -#include <ouroboros/fqueue.h> #include <ouroboros/dev.h> +#include <ouroboros/fccntl.h> +#include <ouroboros/fqueue.h> + +#include "time_utils.h" #include <stdio.h> #include <string.h> #include <pthread.h> #include <stdint.h> #include <stdbool.h> +#include <signal.h> +#include <stdlib.h> +#include <sys/time.h> +#include <arpa/inet.h> +#include <math.h> +#include <errno.h> +#include <float.h> #define OPING_BUF_SIZE 1500 diff --git a/src/tools/oping/oping_client.c b/src/tools/oping/oping_client.c index 8952f5ed..07fbde74 100644 --- a/src/tools/oping/oping_client.c +++ b/src/tools/oping/oping_client.c @@ -36,18 +36,6 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include <ouroboros/dev.h> -#include <ouroboros/fccntl.h> -#include <ouroboros/time_utils.h> - -#include <signal.h> -#include <stdlib.h> -#include <sys/time.h> -#include <arpa/inet.h> -#include <math.h> -#include <errno.h> -#include <float.h> - volatile bool stop; void shutdown_client(int signo, siginfo_t * info, void * c) @@ -88,12 +76,12 @@ void * reader(void * o) if (msg_len < 0) continue; - if (ntoh32(msg->type) != ECHO_REPLY) { + if (ntohl(msg->type) != ECHO_REPLY) { printf("Invalid message on fd %d.\n", fd); continue; } - if (ntoh32(msg->id) >= client.count) { + if ((uint32_t) ntohl(msg->id) >= client.count) { printf("Invalid id.\n"); continue; } @@ -102,8 +90,8 @@ void * reader(void * o) clock_gettime(CLOCK_MONOTONIC, &now); - sent.tv_sec = ntoh64(msg->tv_sec); - sent.tv_nsec = ntoh64(msg->tv_nsec); + sent.tv_sec = msg->tv_sec; + sent.tv_nsec = msg->tv_nsec; ms = ts_diff_us(&sent, &now) / 1000.0; @@ -155,10 +143,10 @@ void * writer(void * o) clock_gettime(CLOCK_MONOTONIC, &now); - msg->type = hton32(ECHO_REQUEST); - msg->id = hton32(client.sent++); - msg->tv_sec = hton64(now.tv_sec); - msg->tv_nsec = hton64(now.tv_nsec); + msg->type = htonl(ECHO_REQUEST); + msg->id = htonl(client.sent++); + msg->tv_sec = now.tv_sec; + msg->tv_nsec = now.tv_nsec; if (flow_write(*fdp, buf, client.size) == -1) { printf("Failed to send SDU.\n"); diff --git a/src/tools/oping/oping_server.c b/src/tools/oping/oping_server.c index 49b14f81..e91b6f10 100644 --- a/src/tools/oping/oping_server.c +++ b/src/tools/oping/oping_server.c @@ -36,10 +36,6 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include <stdlib.h> -#include <signal.h> -#include <arpa/inet.h> - void shutdown_server(int signo, siginfo_t * info, void * c) { (void) info; |