From f220855772d357f631afa40dd145aca9844e0b2c Mon Sep 17 00:00:00 2001 From: Ken Chou Date: Thu, 11 Sep 2014 10:45:27 +0800 Subject: [PATCH 1/2] socks set http proxy does not seem to work --- gfwlist2pac.py | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/gfwlist2pac.py b/gfwlist2pac.py index 46eebbbd..52452310 100755 --- a/gfwlist2pac.py +++ b/gfwlist2pac.py @@ -89,19 +89,32 @@ def printConfigInfo(config): def fetchGFWList(config): - import socks, socket, urllib2 - - gfwProxyType = config['gfwProxyType'] - if (gfwProxyType == socks.PROXY_TYPE_SOCKS4) or (gfwProxyType == socks.PROXY_TYPE_SOCKS5) or ( - gfwProxyType == socks.PROXY_TYPE_HTTP): - socks.setdefaultproxy(gfwProxyType, config['gfwProxyHost'], config['gfwProxyPort'], True, config['gfwProxyUsr'], - config['gfwProxyPwd']) + import socks + import socket + import urllib2 + + proxy_type = config['gfwProxyType'] + proxy_host = config['gfwProxyHost'] + proxy_port = config['gfwProxyPort'] + proxy_user = config['gfwProxyUsr'] + proxy_pwd = config['gfwProxyPwd'] + + if proxy_type == socks.PROXY_TYPE_SOCKS4 or proxy_type == socks.PROXY_TYPE_SOCKS5: + socks.setdefaultproxy(proxy_type, proxy_host, proxy_port, True, proxy_user, proxy_pwd) socket.socket = socks.socksocket + elif proxy_type == socks.PROXY_TYPE_HTTP: + http_proxy = '{}:{}'.format(proxy_host, proxy_port) + if proxy_user or proxy_pwd: + http_proxy = '{}:{}@{}'.format(proxy_user, proxy_pwd, http_proxy) + + proxy_handler = urllib2.ProxyHandler({'http': http_proxy}) + opener = urllib2.build_opener(proxy_handler) + urllib2.install_opener(opener) if config['debug']: - httpHandler = urllib2.HTTPHandler(debuglevel=1) - httpsHandler = urllib2.HTTPSHandler(debuglevel=1) - opener = urllib2.build_opener(httpHandler, httpsHandler) + http_handler = urllib2.HTTPHandler(debuglevel=int(config['debug'])) + https_handler = urllib2.HTTPSHandler(debuglevel=int(config['debug'])) + opener = urllib2.build_opener(http_handler, https_handler) urllib2.install_opener(opener) response = urllib2.urlopen(config['gfwUrl']) From 31b4307a88d0b706c9d3c31969a3e2e89d2f5348 Mon Sep 17 00:00:00 2001 From: Ken Chou Date: Thu, 11 Sep 2014 11:06:18 +0800 Subject: [PATCH 2/2] debug --- gfwlist2pac.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gfwlist2pac.py b/gfwlist2pac.py index 52452310..bb6b99ca 100755 --- a/gfwlist2pac.py +++ b/gfwlist2pac.py @@ -112,9 +112,9 @@ def fetchGFWList(config): urllib2.install_opener(opener) if config['debug']: - http_handler = urllib2.HTTPHandler(debuglevel=int(config['debug'])) - https_handler = urllib2.HTTPSHandler(debuglevel=int(config['debug'])) - opener = urllib2.build_opener(http_handler, https_handler) + httpHandler = urllib2.HTTPHandler(debuglevel=1) + httpsHandler = urllib2.HTTPSHandler(debuglevel=1) + opener = urllib2.build_opener(httpHandler, httpsHandler) urllib2.install_opener(opener) response = urllib2.urlopen(config['gfwUrl'])