From: Daniel Carl Date: Mon, 21 Jul 2014 22:44:55 +0000 (+0200) Subject: Don't start download for none success http status codes. X-Git-Url: https://git.owens.tech///git?a=commitdiff_plain;h=03a54fbcee161842aa472612c9f642e9b6e1c4c4;p=vimb.git Don't start download for none success http status codes. --- diff --git a/src/main.c b/src/main.c index 96212f6..9cc33ca 100644 --- a/src/main.c +++ b/src/main.c @@ -1180,13 +1180,19 @@ static gboolean mimetype_decision_cb(WebKitWebView *webview, WebKitWebFrame *frame, WebKitNetworkRequest *request, char *mime_type, WebKitWebPolicyDecision *decision) { - /* don't start download if request failed or stopped by proxy */ - if (!mime_type || *mime_type == '\0') { + SoupMessage *msg; + /* don't start download if request failed or stopped by proxy or can be + * displayed in the webview */ + if (!mime_type || *mime_type == '\0' + || webkit_web_view_can_show_mime_type(webview, mime_type)) { + return false; } - if (webkit_web_view_can_show_mime_type(webview, mime_type) == false) { - webkit_web_policy_decision_download(decision); + /* don't start a download when the response has no 2xx status code */ + msg = webkit_network_request_get_message(request); + if (SOUP_STATUS_IS_SUCCESSFUL(msg->status_code)) { + webkit_web_policy_decision_download(decision); return true; } return false;