Pass proxy_url to download handler
authorPaweł Zuzelski <pawelz@pld-linux.org>
Fri, 21 Aug 2009 09:57:02 +0000 (11:57 +0200)
committerPaweł Zuzelski <pawelz@pld-linux.org>
Fri, 21 Aug 2009 09:57:02 +0000 (11:57 +0200)
Pass the value of proxy_url variable as optional 9th argument of download
handler.
Added support for http proxy to the example download handler script.
Updated README file.

README
examples/data/uzbl/scripts/download.sh
uzbl.c

diff --git a/README b/README
index b36293c..f9037c9 100644 (file)
--- a/README
+++ b/README
@@ -364,6 +364,7 @@ The script specific arguments are this:
 * download:
 
     $8 url of item to download
 * download:
 
     $8 url of item to download
+    $9 url of http proxy (optional)
 
 * cookie handler
 
 
 * cookie handler
 
index aa1ca09..c8eb6ba 100755 (executable)
@@ -8,6 +8,9 @@ GET="wget --user-agent=Firefox"
 dest="$HOME"
 url="$8"
 
 dest="$HOME"
 url="$8"
 
+http_proxy="$9"
+export http_proxy
+
 test "x$url" = "x" && { echo "you must supply a url! ($url)"; exit 1; }
 
 # only changes the dir for the $get sub process
 test "x$url" = "x" && { echo "you must supply a url! ($url)"; exit 1; }
 
 # only changes the dir for the $get sub process
diff --git a/uzbl.c b/uzbl.c
index e90d220..80a3cfc 100644 (file)
--- a/uzbl.c
+++ b/uzbl.c
@@ -565,7 +565,17 @@ download_cb (WebKitWebView *web_view, GObject *download, gpointer user_data) {
         if (uzbl.state.verbose)
             printf("Download -> %s\n",uri);
         /* if urls not escaped, we may have to escape and quote uri before this call */
         if (uzbl.state.verbose)
             printf("Download -> %s\n",uri);
         /* if urls not escaped, we may have to escape and quote uri before this call */
-        run_handler(uzbl.behave.download_handler, uri);
+
+        GString *args = g_string_new(uri);
+
+        if (uzbl.net.proxy_url) {
+           g_string_append_c(args, ' ');
+           g_string_append(args, uzbl.net.proxy_url);
+        }
+
+        run_handler(uzbl.behave.download_handler, args->str);
+
+        g_string_free(args, TRUE);
     }
     return (FALSE);
 }
     }
     return (FALSE);
 }