Browse Source

Parse comma separated lists in rspamd_rcl_parse_struct_string_list.

tags/0.9.0
Vsevolod Stakhov 9 years ago
parent
commit
85cb173e35
1 changed files with 13 additions and 3 deletions
  1. 13
    3
      src/libserver/cfg_rcl.c

+ 13
- 3
src/libserver/cfg_rcl.c View File

@@ -1953,7 +1953,7 @@ rspamd_rcl_parse_struct_string_list (rspamd_mempool_t *pool,
{
struct rspamd_rcl_struct_parser *pd = ud;
GList **target;
gchar *val;
gchar *val, **strvec, **cvec;
const ucl_object_t *cur;
const gsize num_str_len = 32;
ucl_object_iter_t iter = NULL;
@@ -1965,8 +1965,18 @@ rspamd_rcl_parse_struct_string_list (rspamd_mempool_t *pool,
while ((cur = ucl_object_iterate_safe (iter, true)) != NULL) {
switch (cur->type) {
case UCL_STRING:
val = rspamd_mempool_strdup (pool, ucl_copy_value_trash (cur));
break;
strvec = g_strsplit_set (ucl_object_tostring (cur), ",", -1);
cvec = strvec;

while (*cvec) {
*target = g_list_prepend (*target,
rspamd_mempool_strdup (pool, *cvec));
cvec ++;
}

g_strfreev (strvec);
/* Go to the next object */
continue;
case UCL_INT:
val = rspamd_mempool_alloc (pool, num_str_len);
rspamd_snprintf (val, num_str_len, "%L", cur->value.iv);

Loading…
Cancel
Save