]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Fix fuzzy retransmits
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 12 May 2021 20:42:24 +0000 (21:42 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 12 May 2021 20:42:24 +0000 (21:42 +0100)
src/plugins/fuzzy_check.c

index bd45fd8d0d6bd71108cf16d5432573dc689997d8..722daeacbd5a0d4b0b49abaab2b3537b3590c650 100644 (file)
@@ -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: