From 939cdafdb687e5be31b783c6228fc5aa32d6f418 Mon Sep 17 00:00:00 2001 From: Benny Baumann <BenBE@geshi.org> Date: Tue, 5 Jan 2021 02:44:28 +0100 Subject: [PATCH] chg: Handle non-blocking sockets when sending data --- src/net/tcp_client.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/net/tcp_client.cpp b/src/net/tcp_client.cpp index ad5d886..e62cffd 100644 --- a/src/net/tcp_client.cpp +++ b/src/net/tcp_client.cpp @@ -195,11 +195,12 @@ void tcp_client::push_write_queue(::ev::io &w) { iorecord buffer = this->write_queue.pop_front(); ssize_t written = write(w.fd, buffer.ptr(), buffer.size()); - if (written < 0) { + if (written >= 0) { + buffer.advance((size_t)written); + } else if (errno != EAGAIN) { throw netio_exception("Failed to write latest buffer content."); } - buffer.advance((size_t)written); this->write_queue.push_front(buffer); } -- GitLab