summaryrefslogtreecommitdiff
path: root/content/fetchcache.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2007-02-02 23:08:13 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2007-02-02 23:08:13 +0000
commit25213dca24dc1c4edfb49fbe070ccea5d2d73399 (patch)
treeeddf95d87b66423e4cc99f2999de02e930ac689a /content/fetchcache.c
parent0b9076903218b8350930725ff59b86baca37dd02 (diff)
downloadnetsurf-25213dca24dc1c4edfb49fbe070ccea5d2d73399.tar.gz
netsurf-25213dca24dc1c4edfb49fbe070ccea5d2d73399.tar.bz2
Fix handling of cookies in unverifiable transactions caused by a redirect from a fetch into a browser window which was varifiable.
svn path=/trunk/netsurf/; revision=3165
Diffstat (limited to 'content/fetchcache.c')
-rw-r--r--content/fetchcache.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/content/fetchcache.c b/content/fetchcache.c
index c6c6e3507..62d81fe15 100644
--- a/content/fetchcache.c
+++ b/content/fetchcache.c
@@ -204,6 +204,7 @@ struct content * fetchcache(const char *url,
* \param post_urlenc url encoded post data, or 0 if none
* \param post_multipart multipart post data, or 0 if none
* \param verifiable this transaction is verifiable
+ * \param parent_url URL of fetch which spawned this one, or 0 if none
*
* Errors will be sent back through the callback.
*/
@@ -215,7 +216,7 @@ void fetchcache_go(struct content *content, const char *referer,
int width, int height,
char *post_urlenc,
struct form_successful_control *post_multipart,
- bool verifiable)
+ bool verifiable, const char *parent_url)
{
char error_message[500];
union content_msg_data msg_data;
@@ -309,7 +310,7 @@ void fetchcache_go(struct content *content, const char *referer,
fetchcache_callback, content,
content->no_error_pages,
post_urlenc, post_multipart, verifiable,
- headers);
+ parent_url, headers);
for (i = 0; headers[i]; i++)
free(headers[i]);
free(headers);
@@ -771,7 +772,7 @@ void fetchcache_notmodified(struct content *c, const void *data)
for (u = c->user_list->next; u; u = u->next) {
fetchcache_go(c, referer, u->callback, u->p1, u->p2,
c->width, c->height, 0, 0,
- false);
+ false, ref ? referer : c->url);
}
free(referer);