diff options
-rw-r--r-- | src/libserver/protocol.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/libserver/protocol.c b/src/libserver/protocol.c index 878f0bb3e..e7f4dbd50 100644 --- a/src/libserver/protocol.c +++ b/src/libserver/protocol.c @@ -889,11 +889,16 @@ rspamd_protocol_extended_url (struct rspamd_task *task, ucl_object_insert_key (obj, elt, "host", 0, false); } - elt = ucl_object_frombool (url->flags & RSPAMD_URL_FLAG_PHISHED); - ucl_object_insert_key (obj, elt, "phished", 0, false); + ucl_object_t *flags = ucl_object_typed_new (UCL_ARRAY); - elt = ucl_object_frombool (url->flags & RSPAMD_URL_FLAG_REDIRECTED); - ucl_object_insert_key (obj, elt, "redirected", 0, false); + for (unsigned int i = 0; i < RSPAMD_URL_MAX_FLAG_SHIFT; i ++) { + if (url->flags & (1u << i)) { + ucl_object_t *fl = ucl_object_fromstring (rspamd_url_flag_to_string (1u << i)); + ucl_array_append (flags, fl); + } + } + + ucl_object_insert_key (obj, flags, "flags", 0, false); if (url->linked_url) { encoded = rspamd_url_encode (url->linked_url, &enclen, task->task_pool); |