summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordimitri staessens <dimitri.staessens@ugent.be>2017-10-14 08:29:50 +0000
committerSander Vrijders <sander.vrijders@ugent.be>2017-10-14 08:29:50 +0000
commit1888c137a8ff315bc549c16740aa727da8c666f5 (patch)
tree9cd6534cdd79de613e1be76d876d435db8e344b5
parent76ce1f398a6efae7f62b6e786ef94e89be0784c1 (diff)
parent7a98128e053ccd59203757982f7332ed5e4568ea (diff)
downloadouroboros-1888c137a8ff315bc549c16740aa727da8c666f5.tar.gz
ouroboros-1888c137a8ff315bc549c16740aa727da8c666f5.zip
Merged in dstaesse/ouroboros/be-fix-multiblock (pull request #627)
lib: Re-enable multi-block support
-rw-r--r--src/lib/CMakeLists.txt2
-rw-r--r--src/lib/config.h.in1
-rw-r--r--src/lib/dev.c2
-rw-r--r--src/tools/cbr/cbr_client.c4
4 files changed, 7 insertions, 2 deletions
diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
index 6ab5ebc8..00670f65 100644
--- a/src/lib/CMakeLists.txt
+++ b/src/lib/CMakeLists.txt
@@ -165,6 +165,8 @@ set(SHM_RDRB_NAME "/${SHM_PREFIX}.rdrb" CACHE INTERNAL
"Name for the main POSIX shared memory buffer")
set(SHM_RDRB_BLOCK_SIZE "sysconf(_SC_PAGESIZE)" CACHE STRING
"SDU buffer block size, multiple of pagesize for performance")
+set(SHM_RDRB_MULTI_BLOCK true CACHE BOOL
+ "SDU buffer multiblock SDU support")
set(SHM_RBUFF_LOCKLESS 0 CACHE BOOL
"Enable shared memory lockless rbuff support")
diff --git a/src/lib/config.h.in b/src/lib/config.h.in
index a85ce7b4..40ac945d 100644
--- a/src/lib/config.h.in
+++ b/src/lib/config.h.in
@@ -27,6 +27,7 @@
#define SYS_MAX_FLOWS @SYS_MAX_FLOWS@
#cmakedefine SHM_RBUFF_LOCKLESS
+#cmakedefine SHM_RDRB_MULTI_BLOCK
#define SHM_RBUFF_PREFIX "@SHM_RBUFF_PREFIX@"
#define SHM_LOCKFILE_NAME "@SHM_LOCKFILE_NAME@"
diff --git a/src/lib/dev.c b/src/lib/dev.c
index 9cb6f2ed..e6e5b4d4 100644
--- a/src/lib/dev.c
+++ b/src/lib/dev.c
@@ -1095,6 +1095,8 @@ ssize_t flow_write(int fd,
DU_BUFF_TAILSPACE,
buf,
count);
+ if (idx < 0)
+ return idx;
pthread_rwlock_rdlock(&ai.lock);
}
diff --git a/src/tools/cbr/cbr_client.c b/src/tools/cbr/cbr_client.c
index decf6f96..79425ff2 100644
--- a/src/tools/cbr/cbr_client.c
+++ b/src/tools/cbr/cbr_client.c
@@ -102,7 +102,7 @@ int client_main(char * server,
ts_add(&end, &intv, &end);
memcpy(buf, &seqnr, sizeof(seqnr));
- if (flow_write(fd, buf, size) == -1) {
+ if (flow_write(fd, buf, size) < 0) {
stop = true;
continue;
}
@@ -120,7 +120,7 @@ int client_main(char * server,
} else { /* flood */
while (!stop) {
clock_gettime(CLOCK_REALTIME, &end);
- if (flow_write(fd, buf, (size_t) size) == -1) {
+ if (flow_write(fd, buf, (size_t) size) < 0) {
stop = true;
continue;
}