aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2021-05-12 21:42:24 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2021-05-12 21:42:24 +0100
commit425e6f7e937d104d9e4aef6ba78ad6903782548a (patch)
tree088f79bd8c098a93ac018fbb189aea1daa5f6590
parent985a09cc101b06c3fb14e3bc33400ae1628f4b6e (diff)
downloadrspamd-425e6f7e937d104d9e4aef6ba78ad6903782548a.tar.gz
rspamd-425e6f7e937d104d9e4aef6ba78ad6903782548a.zip
[Fix] Fix fuzzy retransmits
-rw-r--r--src/plugins/fuzzy_check.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/plugins/fuzzy_check.c b/src/plugins/fuzzy_check.c
index bd45fd8d0..722daeacb 100644
--- a/src/plugins/fuzzy_check.c
+++ b/src/plugins/fuzzy_check.c
@@ -2607,9 +2607,21 @@ fuzzy_check_io_callback (gint fd, short what, void *arg)
ret = return_want_more;
}
else {
- /* It is actually time out */
- fuzzy_check_timer_callback (fd, what, arg);
- return;
+ if (what & EV_WRITE) {
+ /* Retransmit attempt */
+ if (!fuzzy_cmd_vector_to_wire (fd, session->commands)) {
+ ret = return_error;
+ }
+ else {
+ session->state = 1;
+ ret = return_want_more;
+ }
+ }
+ else {
+ /* It is actually time out */
+ fuzzy_check_timer_callback(fd, what, arg);
+ return;
+ }
}
break;
case 1: