]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Add some sanity checks when managing monitoring timeouts
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 19 Jul 2017 20:15:05 +0000 (21:15 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 19 Jul 2017 20:15:05 +0000 (21:15 +0100)
src/libserver/monitored.c

index 3202b80af177684e047d98a785d6cda6a86164f0..01979b11e15bb5cca2f64f684038f55e03d7e5a3 100644 (file)
@@ -94,7 +94,11 @@ rspamd_monitored_propagate_error (struct rspamd_monitored *m,
                        m->cur_errors ++;
                        /* Reduce timeout */
                        rspamd_monitored_stop (m);
-                       m->monitoring_mult /= 2.0;
+
+                       if (m->monitoring_mult > 0.1) {
+                               m->monitoring_mult /= 2.0;
+                       }
+
                        rspamd_monitored_start (m);
                }
                else {
@@ -132,6 +136,7 @@ rspamd_monitored_propagate_success (struct rspamd_monitored *m, gdouble lat)
        gdouble t;
 
        m->cur_errors = 0;
+       m->monitoring_mult = 1.0;
 
        if (!m->alive) {
                t = rspamd_get_calendar_ticks ();
@@ -144,7 +149,6 @@ rspamd_monitored_propagate_success (struct rspamd_monitored *m, gdouble lat)
                m->nchecks = 1;
                m->latency = lat;
                rspamd_monitored_stop (m);
-               m->monitoring_mult = 1.0;
                rspamd_monitored_start (m);
 
                if (m->ctx->change_cb) {