From 4e775400564cc02b51978dc2671c126ff8da5e9d Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Thu, 15 Mar 2018 21:14:41 +0100 Subject: tools: Use non-blocking read in servers The oping and ocbr servers were using non-blocking read/writes. This caused writes to fail on high-performance tests if the buffer got full, instead of waiting for a slot in the buffer. The write failure caused the server to quit. This fixes the tools by setting the I/O to blocking write and non-blocking read. Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- src/tools/ocbr/ocbr_server.c | 2 +- src/tools/oping/oping_server.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tools/ocbr/ocbr_server.c b/src/tools/ocbr/ocbr_server.c index 874155ed..3004d77c 100644 --- a/src/tools/ocbr/ocbr_server.c +++ b/src/tools/ocbr/ocbr_server.c @@ -100,7 +100,7 @@ static void handle_flow(int fd) alive = iv_start; ts_add(&iv_start, &intv, &iv_end); - fccntl(fd, FLOWSFLAGS, FLOWFNONBLOCK); + fccntl(fd, FLOWSFLAGS, FLOWFRNOBLOCK | FLOWFRDWR); while (!stop) { clock_gettime(CLOCK_REALTIME, &now); diff --git a/src/tools/oping/oping_server.c b/src/tools/oping/oping_server.c index e91b6f10..391da197 100644 --- a/src/tools/oping/oping_server.c +++ b/src/tools/oping/oping_server.c @@ -142,7 +142,7 @@ void * accept_thread(void * o) server.times[fd] = now; pthread_mutex_unlock(&server.lock); - fccntl(fd, FLOWSFLAGS, FLOWFNONBLOCK | FLOWFRDWR); + fccntl(fd, FLOWSFLAGS, FLOWFRNOBLOCK | FLOWFRDWR); } return (void *) 0; -- cgit v1.2.3