diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libserver/cfg_rcl.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libserver/cfg_rcl.c b/src/libserver/cfg_rcl.c index c7ccdccbe..9bb8fecfc 100644 --- a/src/libserver/cfg_rcl.c +++ b/src/libserver/cfg_rcl.c @@ -1672,6 +1672,7 @@ rspamd_rcl_parse_struct_integer (struct rspamd_config *cfg, gint32 *i32p; gint16 *i16p; gint64 *i64p; + guint *up; gsize *sp; } target; gint64 val; @@ -1720,6 +1721,17 @@ rspamd_rcl_parse_struct_integer (struct rspamd_config *cfg, } *target.i16p = val; } + else if (pd->flags == RSPAMD_CL_FLAG_UINT) { + target.up = (guint *)(((gchar *)pd->user_struct) + pd->offset); + if (!ucl_object_toint_safe (obj, &val)) { + g_set_error (err, + CFG_RCL_ERROR, + EINVAL, + "cannot convert param to integer"); + return FALSE; + } + *target.up = val; + } else { target.ip = (gint *)(((gchar *)pd->user_struct) + pd->offset); if (!ucl_object_toint_safe (obj, &val)) { |