]> source.dussan.org Git - rspamd.git/commitdiff
Add options for workers
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 29 Dec 2015 17:13:41 +0000 (17:13 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 29 Dec 2015 17:13:41 +0000 (17:13 +0000)
src/libserver/cfg_rcl.c
src/rspamadm/confighelp.c

index a8fd2ee9155ac9e59866f5ac641cceda2dc1727a..2a35a554e6823b49caf5bd2a29ae54ee52709c60 100644 (file)
@@ -2747,6 +2747,8 @@ rspamd_rcl_register_worker_option (struct rspamd_config *cfg,
        struct rspamd_worker_param_parser *nhandler;
        struct rspamd_worker_cfg_parser *nparser;
        struct rspamd_worker_param_key srch;
+       const ucl_object_t *doc_workers, *doc_target;
+       ucl_object_t *doc_obj;
 
        nparser = g_hash_table_lookup (cfg->wrk_parsers, &type);
 
@@ -2780,6 +2782,26 @@ rspamd_rcl_register_worker_option (struct rspamd_config *cfg,
        nhandler->handler = handler;
 
        g_hash_table_insert (nparser->parsers, &nhandler->key, nhandler);
+
+       doc_workers = ucl_object_find_key (cfg->doc_strings, "workers");
+
+       if (doc_workers == NULL) {
+               doc_obj = ucl_object_typed_new (UCL_OBJECT);
+               ucl_object_insert_key (cfg->doc_strings, doc_obj, "workers", 0, false);
+               doc_workers = doc_obj;
+       }
+
+       doc_target = ucl_object_find_key (doc_workers, g_quark_to_string (type));
+
+       if (doc_target == NULL) {
+               doc_obj = ucl_object_typed_new (UCL_OBJECT);
+               ucl_object_insert_key ((ucl_object_t *)doc_workers, doc_obj,
+                               g_quark_to_string (type), 0, true);
+               doc_target = doc_obj;
+       }
+
+       rspamd_rcl_add_doc_obj ((ucl_object_t *)doc_target, doc_string, name, UCL_NULL,
+                       handler, flags);
 }
 
 
index 870676e9fc54e760cf148c2f6aa8fe4cdbfe45e3..c76f580e7de7f2271e0fbc584e517e64cd2a52d9 100644 (file)
@@ -218,6 +218,13 @@ rspamadm_confighelp (gint argc, gchar **argv)
                exit (1);
        }
 
+       pworker = &workers[0];
+       while (*pworker) {
+               /* Init string quarks */
+               (void) g_quark_from_static_string ((*pworker)->name);
+               pworker++;
+       }
+
        cfg = rspamd_config_new ();
        cfg->compiled_modules = modules;
        cfg->compiled_workers = workers;