@@ -1774,6 +1774,7 @@ rspamd_html_process_img_tag (rspamd_mempool_t *pool, struct html_tag *tag, | |||
cur = tag->params->head; | |||
img = rspamd_mempool_alloc0 (pool, sizeof (*img)); | |||
img->tag = tag; | |||
tag->flags |= FL_IMAGE; | |||
while (cur) { | |||
comp = cur->data; | |||
@@ -3180,6 +3181,7 @@ rspamd_html_process_part_full (rspamd_mempool_t *pool, | |||
msg_debug_html ("got valid base tag"); | |||
hc->base_url = url; | |||
cur_tag->extra = url; | |||
cur_tag->flags |= FL_HREF; | |||
} | |||
else { | |||
msg_debug_html ("got invalid base tag!"); |
@@ -105,6 +105,7 @@ struct html_block { | |||
#define FL_IGNORE (1 << 27) | |||
#define FL_BLOCK (1 << 28) | |||
#define FL_HREF (1 << 29) | |||
#define FL_IMAGE (1 << 30) | |||
struct html_tag { | |||
gint id; |
@@ -715,16 +715,16 @@ lua_html_tag_get_extra (lua_State *L) | |||
if (ltag) { | |||
if (ltag->tag->extra) { | |||
if ((ltag->tag->flags & FL_HREF) || ltag->tag->id == Tag_BASE) { | |||
if (ltag->tag->flags & FL_IMAGE) { | |||
img = ltag->tag->extra; | |||
lua_html_push_image (L, img); | |||
} | |||
else if (ltag->tag->flags & FL_HREF) { | |||
/* For A that's URL */ | |||
purl = lua_newuserdata (L, sizeof (gpointer)); | |||
*purl = ltag->tag->extra; | |||
rspamd_lua_setclass (L, "rspamd{url}", -1); | |||
} | |||
else if (ltag->tag->id == Tag_IMG) { | |||
img = ltag->tag->extra; | |||
lua_html_push_image (L, img); | |||
} | |||
else if (ltag->tag->flags & FL_BLOCK) { | |||
lua_html_push_block (L, ltag->tag->extra); | |||
} |