From 8c862c4eea636b2d60c360e1fdebc94e2bdfd6d1 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Thu, 1 Dec 2016 20:11:09 +0000 Subject: Only write to remote socket when we know they are writable Buffer data (in an horribly innefficient way for now), and use the event manager to watch for the socket being ready for a write. Fixes #945 --- src/file.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/file.cc') diff --git a/src/file.cc b/src/file.cc index 1455624b..64061d09 100644 --- a/src/file.cc +++ b/src/file.cc @@ -143,6 +143,16 @@ bool fd_readable(int fd) return select(fd+1, &rfds, nullptr, nullptr, &tv) == 1; } +bool fd_writable(int fd) +{ + fd_set rfds; + FD_ZERO(&rfds); + FD_SET(fd, &rfds); + + timeval tv{0,0}; + return select(fd+1, nullptr, &rfds, nullptr, &tv) == 1; +} + String read_fd(int fd, bool text) { String content; -- cgit v1.2.3