diff options
author | James Bursa <james@netsurf-browser.org> | 2003-07-01 20:36:28 +0000 |
---|---|---|
committer | James Bursa <james@netsurf-browser.org> | 2003-07-01 20:36:28 +0000 |
commit | 484eaf8297672c2ed07a4406b4a1bc35c881fb22 (patch) | |
tree | 4936ddaf4048383f4b8f8909c44666d78cd9aafa | |
parent | a40193b55d85a47ab952351346cfc347d4822a04 (diff) | |
download | netsurf-484eaf8297672c2ed07a4406b4a1bc35c881fb22.tar.gz netsurf-484eaf8297672c2ed07a4406b4a1bc35c881fb22.tar.bz2 |
[project @ 2003-07-01 20:36:28 by bursa]
Handle relative redirects.
svn path=/import/netsurf/; revision=197
-rw-r--r-- | content/fetchcache.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/content/fetchcache.c b/content/fetchcache.c index 8f267f70f..ebd5e66d1 100644 --- a/content/fetchcache.c +++ b/content/fetchcache.c @@ -56,6 +56,7 @@ void fetchcache_callback(fetch_msg msg, void *p, char *data, unsigned long size) content_type type; char *mime_type; char *semic; + char *url; switch (msg) { case FETCH_TYPE: @@ -95,7 +96,11 @@ void fetchcache_callback(fetch_msg msg, void *p, char *data, unsigned long size) case FETCH_REDIRECT: LOG(("FETCH_REDIRECT, '%s'", data)); c->fetch = 0; - content_broadcast(c, CONTENT_MSG_REDIRECT, data); + /* redirect URLs must be absolute by HTTP/1.1, but many sites send + * relative ones: treat them as relative to requested URL */ + url = url_join(data, c->url); + content_broadcast(c, CONTENT_MSG_REDIRECT, url); + xfree(url); cache_destroy(c); content_destroy(c); break; |