changeset 1513:caf2d219c769

If http_proxy pref set, but env var not set, then set env var (for wget). http://lists.auriga.wearlab.de/pipermail/dillo-dev/2009-December/007131.html
author corvid <corvid@lavabit.com>
date Tue, 12 Jan 2010 04:16:21 +0000
parents bd36920f32d4
children 239f9fc6c313
files ChangeLog dillorc src/IO/http.c src/prefs.c src/prefs.h src/prefsparser.cc
diffstat 6 files changed, 14 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Jan 12 00:27:14 2010 +0000
+++ b/ChangeLog	Tue Jan 12 04:16:21 2010 +0000
@@ -2,7 +2,7 @@
 Dillo project
 =============================================================================
 
-dillo-2.2 [??]
+dillo-2.2 [??, 2010]
 
 +- Added keybindings for scrolling.
    Patch: corvid, Jorge Arellano Cid
@@ -59,6 +59,8 @@
  - Allow keysyms in keysrc.
  - Explicitly check installation bindir for dpid (BUG 930)
  - General cookies overhaul.
+ - If http_proxy environment var not set and http_proxy pref is set, then set
+   env from pref so a spawned dpid/downloads dpi/wget will see pref value.
    Patches: corvid
 +- Support for the letter-spacing property.
    Patch: Johannes Hofmann, corvid
--- a/dillorc	Tue Jan 12 00:27:14 2010 +0000
+++ b/dillorc	Tue Jan 12 04:16:21 2010 +0000
@@ -113,8 +113,8 @@
 
 # Set the proxy information for http.
 # Note that the http_proxy environment variable overrides this setting.
-# WARNING: FTP and downloads plugins use wget. To use a proxy with them,
-#          you will need to configure wget accordingly.
+# WARNING: For ftp, dillo uses wget. To use a proxy with it, you will need
+#          to set the ftp_proxy environment variable.
 # http_proxy="http://localhost:8080/"
 #(by default, no proxy is used)
 
@@ -123,7 +123,8 @@
 # http_proxyuser="joe"
 #(by default, no proxy is used)
 
-# Set the domains to access without proxy
+# Set the domains to access without proxy.
+# Note that the downloads dpi does not know about this list.
 # no_proxy = ".hola.com .mynet.cl .hi.de"
 #no_proxy="localhost 127.0.0.1"
 
--- a/src/IO/http.c	Tue Jan 12 00:27:14 2010 +0000
+++ b/src/IO/http.c	Tue Jan 12 04:16:21 2010 +0000
@@ -82,8 +82,10 @@
 
    if (env_proxy && strlen(env_proxy))
       HTTP_Proxy = a_Url_new(env_proxy, NULL);
-   if (!HTTP_Proxy && prefs.http_proxy)
-      HTTP_Proxy = a_Url_dup(prefs.http_proxy);
+   if (!HTTP_Proxy && prefs.http_proxy) {
+      HTTP_Proxy = a_Url_new(prefs.http_proxy, NULL);
+      setenv("http_proxy", URL_STR(HTTP_Proxy), 1);
+   }
 
 /*  This allows for storing the proxy password in "user:passwd" format
  * in dillorc, but as this constitutes a security problem, it was disabled.
--- a/src/prefs.c	Tue Jan 12 00:27:14 2010 +0000
+++ b/src/prefs.c	Tue Jan 12 04:16:21 2010 +0000
@@ -104,7 +104,7 @@
    dFree(prefs.font_serif);
    a_Url_free(prefs.home);
    dFree(prefs.http_language);
-   a_Url_free(prefs.http_proxy);
+   dFree(prefs.http_proxy);
    dFree(prefs.http_proxyuser);
    dFree(prefs.http_referer);
    dFree(prefs.no_proxy);
--- a/src/prefs.h	Tue Jan 12 00:27:14 2010 +0000
+++ b/src/prefs.h	Tue Jan 12 04:16:21 2010 +0000
@@ -34,7 +34,7 @@
    int xpos;
    int ypos;
    char *http_language;
-   DilloUrl *http_proxy;
+   char *http_proxy;
    char *http_proxyuser;
    char *http_referer;
    char *no_proxy;
--- a/src/prefsparser.cc	Tue Jan 12 00:27:14 2010 +0000
+++ b/src/prefsparser.cc	Tue Jan 12 04:16:21 2010 +0000
@@ -63,7 +63,7 @@
       { "geometry", NULL, PREFS_GEOMETRY },
       { "home", &prefs.home, PREFS_URL },
       { "http_language", &prefs.http_language, PREFS_STRING },
-      { "http_proxy", &prefs.http_proxy, PREFS_URL },
+      { "http_proxy", &prefs.http_proxy, PREFS_STRING },
       { "http_proxyuser", &prefs.http_proxyuser, PREFS_STRING },
       { "http_referer", &prefs.http_referer, PREFS_STRING },
       { "limit_text_width", &prefs.limit_text_width, PREFS_BOOL },