Browse Source

[Feature] Allow to disable specific workers in the config

pull/1700/head
Vsevolod Stakhov 9 years ago
parent
commit
8fb06a8fe1
  1. 1
      conf/dmarc_whitelist.inc
  2. 1
      src/libserver/cfg_file.h
  3. 6
      src/libserver/cfg_rcl.c
  4. 1
      src/libserver/cfg_utils.c
  5. 8
      src/rspamd.c

1
conf/dmarc_whitelist.inc

@ -25,6 +25,7 @@ force.com
hh.ru
instagram.com
linkedin.com
livejournal.com
mackeeper.com
mercadolibre.com.ar
mercadolivre.com.br

1
src/libserver/cfg_file.h

@ -198,6 +198,7 @@ struct rspamd_worker_conf {
gpointer *ctx; /**< worker's context */
ucl_object_t *options; /**< other worker's options */
struct rspamd_worker_lua_script *scripts; /**< registered lua scripts */
gboolean enabled;
ref_entry_t ref;
};

6
src/libserver/cfg_rcl.c

@ -2400,6 +2400,12 @@ rspamd_rcl_config_init (struct rspamd_config *cfg)
G_STRUCT_OFFSET (struct rspamd_worker_conf, rlimit_maxcore),
RSPAMD_CL_FLAG_INT_32,
"Max size of core file in bytes");
rspamd_rcl_add_default_handler (sub,
"enabled",
rspamd_rcl_parse_struct_boolean,
G_STRUCT_OFFSET (struct rspamd_worker_conf, enabled),
0,
"Enable or disable a worker (true by default)");
/**
* Modules handler

1
src/libserver/cfg_utils.c

@ -987,6 +987,7 @@ rspamd_config_new_worker (struct rspamd_config *cfg,
#endif
c->rlimit_nofile = 0;
c->rlimit_maxcore = 0;
c->enabled = TRUE;
REF_INIT_RETAIN (c, rspamd_worker_conf_dtor);
rspamd_mempool_add_destructor (cfg->cfg_pool,

8
src/rspamd.c

@ -550,6 +550,14 @@ spawn_workers (struct rspamd_main *rspamd_main, struct event_base *ev_base)
msg_err_main ("type of worker is unspecified, skip spawning");
}
else {
if (!cf->enabled) {
msg_info_main ("worker of type %s is disabled in the config, "
"skip spawning", g_quark_to_string (cf->type));
cur = g_list_next (cur);
continue;
}
if (cf->worker->flags & RSPAMD_WORKER_ALWAYS_START) {
g_ptr_array_add (seen_mandatory_workers, cf->worker);
}

Loading…
Cancel
Save