commit 705ef63: [Fix] Lua_tcp: Deal with temporary fails on write
Vsevolod Stakhov
vsevolod at highsecure.ru
Fri Oct 18 13:00:06 UTC 2019
Author: Vsevolod Stakhov
Date: 2019-10-18 13:56:17 +0100
URL: https://github.com/rspamd/rspamd/commit/705ef63d5d0505baeadd17da4e9e5986d937a028 (HEAD -> master)
[Fix] Lua_tcp: Deal with temporary fails on write
Issue: #3097
---
src/lua/lua_tcp.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/lua/lua_tcp.c b/src/lua/lua_tcp.c
index 335d770d5..09d572199 100644
--- a/src/lua/lua_tcp.c
+++ b/src/lua/lua_tcp.c
@@ -850,12 +850,19 @@ lua_tcp_write_helper (struct lua_tcp_cbdata *cbd)
if (r == -1) {
if (!(cbd->ssl_conn)) {
- lua_tcp_push_error (cbd, TRUE,
- "IO write error while trying to write %d bytes: %s",
- (gint) remain, strerror (errno));
+ if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) {
+ msg_debug_tcp ("got temporary failure, retry write");
+ lua_tcp_plan_handler_event (cbd, TRUE, TRUE);
+ return;
+ }
+ else {
+ lua_tcp_push_error (cbd, TRUE,
+ "IO write error while trying to write %d bytes: %s",
+ (gint) remain, strerror (errno));
- msg_debug_tcp ("write error, terminate connection");
- TCP_RELEASE (cbd);
+ msg_debug_tcp ("write error, terminate connection");
+ TCP_RELEASE (cbd);
+ }
}
return;
More information about the Commits
mailing list