diff options
Diffstat (limited to 'src/sockutils.cc')
| -rw-r--r-- | src/sockutils.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/sockutils.cc b/src/sockutils.cc new file mode 100644 index 0000000..53e3ef0 --- /dev/null +++ b/src/sockutils.cc @@ -0,0 +1,23 @@ +#include "common.hh" + +#include <fcntl.h> + +#include "sockutils.hh" + +namespace stuff { + +bool make_nonblocking(int sock) { + int flags = fcntl(sock, F_GETFL, 0); + if (flags < 0) { + return false; + } + if (!(flags & O_NONBLOCK)) { + flags |= O_NONBLOCK; + if (fcntl(sock, F_SETFL, flags) < 0) { + return false; + } + } + return true; +} + +} // namespace stuff |
