From bff7ee6f2554a7b262ffa6e1d46f781afce1b069 Mon Sep 17 00:00:00 2001 From: Marek Marczykowski Date: Sat, 25 Aug 2012 01:11:22 +0200 Subject: [PATCH] vm/qubes-rpc: move set_(non)?block to ioall.c as can be used not only in qrexec --- qubes_rpc/ioall.c | 11 +++++++++++ qubes_rpc/ioall.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/qubes_rpc/ioall.c b/qubes_rpc/ioall.c index fff063c..355b88f 100644 --- a/qubes_rpc/ioall.c +++ b/qubes_rpc/ioall.c @@ -32,6 +32,17 @@ void perror_wrapper(char * msg) errno=prev; } +void set_nonblock(int fd) +{ + int fl = fcntl(fd, F_GETFL, 0); + fcntl(fd, F_SETFL, fl | O_NONBLOCK); +} + +void set_block(int fd) +{ + int fl = fcntl(fd, F_GETFL, 0); + fcntl(fd, F_SETFL, fl & ~O_NONBLOCK); +} int write_all(int fd, void *buf, int size) { diff --git a/qubes_rpc/ioall.h b/qubes_rpc/ioall.h index 1a700c6..c9913e8 100644 --- a/qubes_rpc/ioall.h +++ b/qubes_rpc/ioall.h @@ -1,3 +1,5 @@ int write_all(int fd, void *buf, int size); int read_all(int fd, void *buf, int size); int copy_fd_all(int fdout, int fdin); +void set_nonblock(int fd); +void set_block(int fd);