diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-07-13 17:03:27 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-07-13 17:07:23 +0100 |
commit | 70cbb6d39a06eb6f71832517bfd788ad217b6965 (patch) | |
tree | 5e0e41033565b271021072aa5c2455f0e79a91a7 /src/libserver | |
parent | d2af2a1d52a8f9b26b7c77b12ce555db24f07df4 (diff) | |
download | rspamd-70cbb6d39a06eb6f71832517bfd788ad217b6965.tar.gz rspamd-70cbb6d39a06eb6f71832517bfd788ad217b6965.zip |
[Rework] Rework exceptions and newlines processing
Diffstat (limited to 'src/libserver')
-rw-r--r-- | src/libserver/html.c | 3 | ||||
-rw-r--r-- | src/libserver/url.c | 15 |
2 files changed, 10 insertions, 8 deletions
diff --git a/src/libserver/html.c b/src/libserver/html.c index 0a25e488a..1188515c5 100644 --- a/src/libserver/html.c +++ b/src/libserver/html.c @@ -1601,7 +1601,7 @@ rspamd_html_process_part_full (rspamd_mempool_t *pool, struct html_content *hc, gint substate = 0, len, href_offset = -1; struct html_tag *cur_tag = NULL; struct rspamd_url *url = NULL, *turl; - struct process_exception *ex; + struct rspamd_process_exception *ex; enum { parse_start = 0, tag_begin, @@ -1977,6 +1977,7 @@ rspamd_html_process_part_full (rspamd_mempool_t *pool, struct html_content *hc, ex = rspamd_mempool_alloc (pool, sizeof (*ex)); ex->pos = href_offset; ex->len = dest->len - href_offset; + ex->type = RSPAMD_EXCEPTION_URL; *exceptions = g_list_prepend (*exceptions, ex); } diff --git a/src/libserver/url.c b/src/libserver/url.c index 823e32a43..1ccc91a27 100644 --- a/src/libserver/url.c +++ b/src/libserver/url.c @@ -2294,17 +2294,18 @@ rspamd_url_text_part_callback (struct rspamd_url *url, gsize start_offset, gsize end_offset, gpointer ud) { struct rspamd_url_mimepart_cbdata *cbd = ud; - struct process_exception *ex; + struct rspamd_process_exception *ex; struct rspamd_task *task; gchar *url_str = NULL; struct rspamd_url *query_url; gint rc; task = cbd->task; - ex = rspamd_mempool_alloc0 (task->task_pool, sizeof (struct process_exception)); + ex = rspamd_mempool_alloc0 (task->task_pool, sizeof (struct rspamd_process_exception)); ex->pos = start_offset; ex->len = end_offset - start_offset; + ex->type = RSPAMD_EXCEPTION_URL; if (url->protocol == PROTOCOL_MAILTO) { if (url->userlen > 0) { @@ -2320,8 +2321,8 @@ rspamd_url_text_part_callback (struct rspamd_url *url, gsize start_offset, } } - cbd->part->urls_offset = g_list_prepend ( - cbd->part->urls_offset, + cbd->part->exceptions = g_list_prepend ( + cbd->part->exceptions, ex); /* We also search the query for additional url inside */ @@ -2376,10 +2377,10 @@ rspamd_url_text_extract (rspamd_mempool_t *pool, rspamd_url_text_part_callback, &mcbd); /* Handle offsets of this part */ - if (part->urls_offset != NULL) { - part->urls_offset = g_list_reverse (part->urls_offset); + if (part->exceptions != NULL) { + part->exceptions = g_list_reverse (part->exceptions); rspamd_mempool_add_destructor (task->task_pool, - (rspamd_mempool_destruct_t) g_list_free, part->urls_offset); + (rspamd_mempool_destruct_t) g_list_free, part->exceptions); } } |