diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-03-15 14:55:51 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-03-15 14:55:51 +0000 |
commit | 61f5955c49d8846fec3e4deaa9d49c7ac3823888 (patch) | |
tree | 2b70b106b550f68eafea4c4a106690066441ecee | |
parent | 612bbd0102d0090b753de4ccc10147461e4a3932 (diff) | |
download | rspamd-61f5955c49d8846fec3e4deaa9d49c7ac3823888.tar.gz rspamd-61f5955c49d8846fec3e4deaa9d49c7ac3823888.zip |
[Feature] Allow raw ucl options in the config
-rw-r--r-- | src/libserver/cfg_rcl.c | 18 | ||||
-rw-r--r-- | src/libserver/cfg_rcl.h | 15 |
2 files changed, 33 insertions, 0 deletions
diff --git a/src/libserver/cfg_rcl.c b/src/libserver/cfg_rcl.c index 265b14ca4..e33bff155 100644 --- a/src/libserver/cfg_rcl.c +++ b/src/libserver/cfg_rcl.c @@ -2726,6 +2726,24 @@ rspamd_rcl_parse_struct_string_list (rspamd_mempool_t *pool, } gboolean +rspamd_rcl_parse_struct_ucl (rspamd_mempool_t *pool, + const ucl_object_t *obj, + gpointer ud, + struct rspamd_rcl_section *section, + GError **err) +{ + struct rspamd_rcl_struct_parser *pd = ud; + const ucl_object_t **target; + + target = (const ucl_object_t **)(((gchar *)pd->user_struct) + pd->offset); + + *target = obj; + + return TRUE; +} + + +gboolean rspamd_rcl_parse_struct_boolean (rspamd_mempool_t *pool, const ucl_object_t *obj, gpointer ud, diff --git a/src/libserver/cfg_rcl.h b/src/libserver/cfg_rcl.h index e91779b87..ee0a1b526 100644 --- a/src/libserver/cfg_rcl.h +++ b/src/libserver/cfg_rcl.h @@ -308,6 +308,21 @@ gboolean rspamd_rcl_parse_struct_mime_addr (rspamd_mempool_t *pool, GError **err); /** + * Parse a raw ucl object + * @param cfg config pointer + * @param obj object to parse + * @param ud struct_parser structure (flags mean the exact structure used) + * @param section the current section + * @param err error pointer + * @return TRUE if a value has been successfully parsed + */ +gboolean rspamd_rcl_parse_struct_ucl (rspamd_mempool_t *pool, + const ucl_object_t *obj, + gpointer ud, + struct rspamd_rcl_section *section, + GError **err); + +/** * Utility functions */ |