Browse Source

[Minor] Fix for dynamic conf in redis

tags/1.4.0
Vsevolod Stakhov 7 years ago
parent
commit
e89f3fd096
1 changed files with 15 additions and 9 deletions
  1. 15
    9
      src/controller.c

+ 15
- 9
src/controller.c View 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 {

Loading…
Cancel
Save