proxy-uri -> proxy-resolver for no_proxy; add #inc - surf - Surf web browser.
       
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 86efaf80936cebba56ec3e88db61c786c608c885
 (DIR) parent 9fa4ffef72308e75446aeeebc9d38140b7198640
 (HTM) Author: Ivan Tham <pickfire@riseup.net>
       Date:   Thu, 17 Dec 2015 21:35:02 +0800
       
       proxy-uri -> proxy-resolver for no_proxy; add #inc
       
       Signed-off-by: Christoph Lohmann <20h@r-36.net>
       
       Diffstat:
         surf.1                              |       7 +++++++
         surf.c                              |      17 ++++++++++++-----
       
       2 files changed, 19 insertions(+), 5 deletions(-)
       ---
 (DIR) diff --git a/surf.1 b/surf.1
       @@ -283,6 +283,13 @@ string
        .TP
        .B http_proxy
        If this variable is set and not empty upon startup, surf will use it as the http proxy
       +.TP
       +.B no_proxy
       +If both http_proxy is set and no_proxy contain a
       +.BR comma-separated
       +list of domain extensions and both is not empty upon startup, proxy will
       +.BR not
       +be used for each of the elements in no_proxy.
        .SH PLUGINS
        For using plugins in surf, first determine your running architecture. Then get
        tthe appropriate plugin for that architecture and copy it to
 (DIR) diff --git a/surf.c b/surf.c
       @@ -24,6 +24,9 @@
        #include <stdarg.h>
        #include <regex.h>
        #include <pwd.h>
       +#include <glib.h>
       +#include <lib/gprintf.h>
       +#include <gio/gio.h>
        
        #include "arg.h"
        
       @@ -1290,9 +1293,9 @@ void
        setup(void)
        {
                int i;
       -        char *proxy, *new_proxy;
       +        char *proxy, *new_proxy, *no_proxy, **new_no_proxy;
                char *styledirfile, *stylepath;
       -        SoupURI *puri;
       +        GProxyResolver *pr;
                SoupSession *s;
                GError *error = NULL;
        
       @@ -1367,15 +1370,19 @@ setup(void)
                /* proxy */
                if ((proxy = getenv("http_proxy")) && strcmp(proxy, "")) {
                        new_proxy = g_strrstr(proxy, "http://")
       +                            || g_strrstr(proxy, "https://")
                                    || g_strrstr(proxy, "socks://")
                                    || g_strrstr(proxy, "socks4://")
       +                            || g_strrstr(proxy, "socks4a://")
                                    || g_strrstr(proxy, "socks5://")
                                    ? g_strdup(proxy)
                                    : g_strdup_printf("http://%s", proxy);
       -                puri = soup_uri_new(new_proxy);
       -                g_object_set(G_OBJECT(s), "proxy-uri", puri, NULL);
       -                soup_uri_free(puri);
       +                new_no_proxy = ((no_proxy = getenv("no_proxy")) && strcmp(no_proxy, ""))
       +                        ? g_strsplit(no_proxy, ",", -1) : NULL;
       +                pr = g_simple_proxy_resolver_new(new_proxy, new_no_proxy);
       +                g_object_set(G_OBJECT(s), "proxy-resolver", pr, NULL);
                        g_free(new_proxy);
       +                g_strfreev(new_no_proxy);
                        usingproxy = 1;
                }
        }