diff options
author | dimitri staessens <[email protected]> | 2017-03-30 20:33:22 +0200 |
---|---|---|
committer | dimitri staessens <[email protected]> | 2017-03-31 11:51:33 +0200 |
commit | 7ba0fd0ce19244745c8d2512ce8a003783d914a7 (patch) | |
tree | e33ed7dae832ef96cd1997ec038764fac5d95d4c /src/tools/echo/echo_server.c | |
parent | bce97d70ce43290f8351f34c763b30bfd73e6b99 (diff) | |
download | ouroboros-7ba0fd0ce19244745c8d2512ce8a003783d914a7.tar.gz ouroboros-7ba0fd0ce19244745c8d2512ce8a003783d914a7.zip |
lib: Revise flow allocation API
The flow_alloc_res and flow_alloc_resp calls have been removed. The
flow_alloc and flow_accept calls are now both blocking and take an
additional timeout argument.
Diffstat (limited to 'src/tools/echo/echo_server.c')
-rw-r--r-- | src/tools/echo/echo_server.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/src/tools/echo/echo_server.c b/src/tools/echo/echo_server.c index aa136485..771155f4 100644 --- a/src/tools/echo/echo_server.c +++ b/src/tools/echo/echo_server.c @@ -37,7 +37,7 @@ void shutdown_server(int signo) int server_main(void) { - int client_fd = 0; + int fd = 0; char buf[BUF_SIZE]; ssize_t count = 0; qosspec_t qs; @@ -51,36 +51,30 @@ int server_main(void) } while (true) { - client_fd = flow_accept(&qs); - if (client_fd < 0) { + fd = flow_accept(&qs, NULL); + if (fd < 0) { printf("Failed to accept flow.\n"); break; } printf("New flow.\n"); - if (flow_alloc_resp(client_fd, 0)) { - printf("Failed to give an allocate response.\n"); - flow_dealloc(client_fd); - continue; - } - - count = flow_read(client_fd, &buf, BUF_SIZE); + count = flow_read(fd, &buf, BUF_SIZE); if (count < 0) { printf("Failed to read SDU.\n"); - flow_dealloc(client_fd); + flow_dealloc(fd); continue; } printf("Message from client is %.*s.\n", (int) count, buf); - if (flow_write(client_fd, buf, count) == -1) { + if (flow_write(fd, buf, count) == -1) { printf("Failed to write SDU.\n"); - flow_dealloc(client_fd); + flow_dealloc(fd); continue; } - flow_dealloc(client_fd); + flow_dealloc(fd); } return 0; |