diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2011-09-28 11:26:30 +0000 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2011-09-28 11:26:30 +0000 |
commit | 861f88aa43cebd6dbfd0ecde175a4e81b995c2a1 (patch) | |
tree | 296e3131f01f2bab55a32756f5500c6f0337b545 /desktop/browser.c | |
parent | 970d6dd835d4db60d6264bf3ff1a7553cb683723 (diff) | |
download | netsurf-861f88aa43cebd6dbfd0ecde175a4e81b995c2a1.tar.gz netsurf-861f88aa43cebd6dbfd0ecde175a4e81b995c2a1.tar.bz2 |
Port llcache to nsurl.
svn path=/trunk/netsurf/; revision=12904
Diffstat (limited to 'desktop/browser.c')
-rw-r--r-- | desktop/browser.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index b2a9f17b6..4cf79fba6 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -60,6 +60,7 @@ #include "render/textplain.h" #include "utils/log.h" #include "utils/messages.h" +#include "utils/nsurl.h" #include "utils/schedule.h" #include "utils/url.h" #include "utils/utils.h" @@ -752,11 +753,28 @@ void browser_window_go_post(struct browser_window *bw, const char *url, /* Get download out of the way */ if (download) { llcache_handle *l; + nsurl *nsref = NULL; + nsurl *nsurl; + + error = nsurl_create(url2, &nsurl); + if (error != NSERROR_OK) { + free(url2); + return; + } + + if (referer != NULL) { + error = nsurl_create(referer, &nsref); + if (error != NSERROR_OK) { + free(url2); + nsurl_unref(nsurl); + return; + } + } fetch_flags |= LLCACHE_RETRIEVE_FORCE_FETCH; fetch_flags |= LLCACHE_RETRIEVE_STREAM_DATA; - error = llcache_handle_retrieve(url2, fetch_flags, referer, + error = llcache_handle_retrieve(nsurl, fetch_flags, nsref, fetch_is_post ? &post : NULL, NULL, NULL, &l); if (error == NSERROR_NO_FETCH_HANDLER) { @@ -774,6 +792,9 @@ void browser_window_go_post(struct browser_window *bw, const char *url, } free(url2); + nsurl_unref(nsurl); + if (nsref != NULL) + nsurl_unref(nsref); return; } |