aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libserver/cfg_rcl.c12
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)) {