diff --git a/src/raw_sock.c b/src/raw_sock.c index ed90a02dc..197d27d14 100644 --- a/src/raw_sock.c +++ b/src/raw_sock.c @@ -378,8 +378,10 @@ static size_t raw_sock_from_buf(struct connection *conn, void *xprt_ctx, const s /* if the system buffer is full, don't insist */ if (ret < try) break; - if (!count) - fd_stop_send(conn->handle.fd); + if (!count) { + conn_xprt_stop_send(conn); + conn_refresh_polling_flags(conn); + } } else if (ret == 0 || errno == EAGAIN || errno == ENOTCONN || errno == EINPROGRESS) { /* nothing written, we need to poll for write first */