Browse Source

Add function to parse inet address.

tags/0.9.0
Vsevolod Stakhov 9 years ago
parent
commit
179af280e9
1 changed files with 35 additions and 0 deletions
  1. 35
    0
      src/libserver/cfg_rcl.c

+ 35
- 0
src/libserver/cfg_rcl.c View File

@@ -1971,6 +1971,41 @@ rspamd_rcl_parse_struct_boolean (rspamd_mempool_t *pool,
return TRUE;
}

gboolean
rspamd_rcl_parse_struct_addr (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;
rspamd_inet_addr_t **target;
const gchar *val;

target = (rspamd_inet_addr_t **)(((gchar *)pd->user_struct) + pd->offset);

if (obj->type == UCL_STRING) {
val = ucl_object_tostring (obj);

if (!rspamd_parse_inet_address (target, val)) {
g_set_error (err,
CFG_RCL_ERROR,
EINVAL,
"cannot parse inet address: %s", val);
return FALSE;
}
}
else {
g_set_error (err,
CFG_RCL_ERROR,
EINVAL,
"cannot convert an object to inet address");
return FALSE;
}

return TRUE;
}

void
rspamd_rcl_register_worker_option (struct rspamd_config *cfg,
gint type,

Loading…
Cancel
Save