From: Vsevolod Stakhov Date: Tue, 1 Nov 2016 11:59:31 +0000 (+0000) Subject: [Minor] Fix for dynamic conf in redis X-Git-Tag: 1.4.0~157 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e89f3fd096ade8710150adb6f71794d43187fc93;p=thirdparty%2Frspamd.git [Minor] Fix for dynamic conf in redis --- diff --git a/src/controller.c b/src/controller.c index a3c6dd22fd..219ee04edd 100644 --- a/src/controller.c +++ b/src/controller.c @@ -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 {