From: Vsevolod Stakhov Date: Fri, 22 Aug 2014 22:50:24 +0000 (-0700) Subject: Implement .include_map X-Git-Tag: 0.7.0~109 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f17e998db0fadcb2a1d9fcc61dd7f0aa9e3a3964;p=thirdparty%2Frspamd.git Implement .include_map --- diff --git a/src/libserver/cfg_utils.c b/src/libserver/cfg_utils.c index 8d0955c5c8..765b0790aa 100644 --- a/src/libserver/cfg_utils.c +++ b/src/libserver/cfg_utils.c @@ -1021,6 +1021,8 @@ rspamd_ucl_fin_cb (rspamd_mempool_t * pool, struct map_cb_data *data) ucl_object_t *obj; struct ucl_parser *parser; guint32 checksum; + ucl_object_iter_t it = NULL; + const ucl_object_t *cur; if (prev != NULL) { if (prev->buf != NULL) { @@ -1048,7 +1050,12 @@ rspamd_ucl_fin_cb (rspamd_mempool_t * pool, struct map_cb_data *data) else { obj = ucl_parser_get_object (parser); ucl_parser_free (parser); - /* XXX: add replace objects code */ + it = NULL; + + while ((cur = ucl_iterate_object (obj, &it, true))) { + ucl_object_replace_key (cbdata->cfg->rcl_obj, (ucl_object_t *)cur, + cur->key, cur->keylen, false); + } ucl_object_unref (obj); data->map->checksum = checksum; }