summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2011-02-21 21:47:55 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2011-02-21 21:47:55 +0000
commit593b35997be58bc67690481162d02b6abf802fea (patch)
tree4eb83178cca28a8745fc374237582524d12f3743
parent63f902e995780463b5805f0721d7db0be7a2cbab (diff)
downloadnetsurf-593b35997be58bc67690481162d02b6abf802fea.tar.gz
netsurf-593b35997be58bc67690481162d02b6abf802fea.tar.bz2
Slightly more useful behaviour if we can't handle an URL when downloading
svn path=/trunk/netsurf/; revision=11750
-rw-r--r--desktop/browser.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/desktop/browser.c b/desktop/browser.c
index 1f536fe17..04bbc3ac7 100644
--- a/desktop/browser.c
+++ b/desktop/browser.c
@@ -370,18 +370,22 @@ void browser_window_go_post(struct browser_window *bw, const char *url,
error = llcache_handle_retrieve(url2, fetch_flags, referer,
fetch_is_post ? &post : NULL,
NULL, NULL, &l);
- if (error != NSERROR_OK)
+ if (error == NSERROR_NO_FETCH_HANDLER) {
+ gui_launch_url(url2);
+ } else if (error != NSERROR_OK) {
LOG(("Failed to fetch download: %d", error));
+ } else {
+ error = download_context_create(l, bw->window);
+ if (error != NSERROR_OK) {
+ LOG(("Failed creating download context: %d",
+ error));
+ llcache_handle_abort(l);
+ llcache_handle_release(l);
+ }
+ }
free(url2);
- error = download_context_create(l, bw->window);
- if (error != NSERROR_OK) {
- LOG(("Failed creating download context: %d", error));
- llcache_handle_abort(l);
- llcache_handle_release(l);
- }
-
return;
}