]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Fix for dynamic conf in redis
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 1 Nov 2016 11:59:31 +0000 (11:59 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 1 Nov 2016 11:59:31 +0000 (11:59 +0000)
src/controller.c

index a3c6dd22fde684184d91d544db1642626ccf90ad..219ee04eddd395a88d5f18ec67731a81f16e09b5 100644 (file)
@@ -2000,11 +2000,12 @@ rspamd_controller_handle_savesymbols (
                        ucl_object_unref (obj);
                        return 0;
                }
+
                jname = ucl_object_lookup (cur, "name");
                jvalue = ucl_object_lookup (cur, "value");
                val = ucl_object_todouble (jvalue);
-               sym =
-                       g_hash_table_lookup (metric->symbols, ucl_object_tostring (jname));
+               sym = g_hash_table_lookup (metric->symbols, ucl_object_tostring (jname));
+
                if (sym && fabs (*sym->weight_ptr - val) > 0.01) {
                        if (!add_dynamic_symbol (ctx->cfg, DEFAULT_METRIC,
                                ucl_object_tostring (jname), val)) {
@@ -2017,7 +2018,7 @@ rspamd_controller_handle_savesymbols (
                        }
                        added ++;
                }
-               else if (sym) {
+               else if (sym && ctx->cfg->dynamic_conf) {
                        if (remove_dynamic_symbol (ctx->cfg, DEFAULT_METRIC,
                                        ucl_object_tostring (jname))) {
                                added ++;
@@ -2026,15 +2027,20 @@ rspamd_controller_handle_savesymbols (
        }
 
        if (added > 0) {
-               if (dump_dynamic_config (ctx->cfg)) {
-                       msg_info_session ("<%s> modified %d symbols",
-                                       rspamd_inet_address_to_string (session->from_addr),
-                                       added);
+               if (ctx->cfg->dynamic_conf) {
+                       if (dump_dynamic_config (ctx->cfg)) {
+                               msg_info_session ("<%s> modified %d symbols",
+                                               rspamd_inet_address_to_string (session->from_addr),
+                                               added);
 
-                       rspamd_controller_send_string (conn_ent, "{\"success\":true}");
+                               rspamd_controller_send_string (conn_ent, "{\"success\":true}");
+                       }
+                       else {
+                               rspamd_controller_send_error (conn_ent, 500, "Save error");
+                       }
                }
                else {
-                       rspamd_controller_send_error (conn_ent, 500, "Save error");
+                       rspamd_controller_send_string (conn_ent, "{\"success\":true}");
                }
        }
        else {