aboutsummaryrefslogtreecommitdiffstats
path: root/src/libserver
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-07-13 17:03:27 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-07-13 17:07:23 +0100
commit70cbb6d39a06eb6f71832517bfd788ad217b6965 (patch)
tree5e0e41033565b271021072aa5c2455f0e79a91a7 /src/libserver
parentd2af2a1d52a8f9b26b7c77b12ce555db24f07df4 (diff)
downloadrspamd-70cbb6d39a06eb6f71832517bfd788ad217b6965.tar.gz
rspamd-70cbb6d39a06eb6f71832517bfd788ad217b6965.zip
[Rework] Rework exceptions and newlines processing
Diffstat (limited to 'src/libserver')
-rw-r--r--src/libserver/html.c3
-rw-r--r--src/libserver/url.c15
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);
}
}