Added proxy autodetection stuff to service.settings.ProxySettings
This commit is contained in:
@@ -123,29 +123,13 @@ class PFGlobalPref ( PreferenceView):
|
||||
|
||||
mainSizer.Add(btnSizer, 0, wx.EXPAND,5)
|
||||
|
||||
proxy = None
|
||||
proxAddr = proxPort = ""
|
||||
proxydict = urllib2.ProxyHandler().proxies
|
||||
proxy = self.proxySettings.autodetect()
|
||||
|
||||
txt = "Auto-detected: "
|
||||
|
||||
validPrefixes = ("https", "http")
|
||||
|
||||
for prefix in validPrefixes:
|
||||
if not prefix in proxydict:
|
||||
continue
|
||||
proxyline = proxydict[prefix]
|
||||
proto = "{0}://".format(prefix)
|
||||
if proxyline[:len(proto)] == proto:
|
||||
proxyline = proxyline[len(proto):]
|
||||
proxAddr, proxPort = proxyline.split(":")
|
||||
proxPort = int(proxPort.rstrip("/"))
|
||||
proxy = (proxAddr, proxPort)
|
||||
break
|
||||
|
||||
if len(proxAddr) == 0:
|
||||
if len(proxy) == 0:
|
||||
txt += "None"
|
||||
else:
|
||||
txt += proto + proxAddr + ":" + str(proxPort)
|
||||
txt += proxy
|
||||
|
||||
self.stPSAutoDetected.SetLabel(txt)
|
||||
self.stPSAutoDetected.Disable()
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
import cPickle
|
||||
import os.path
|
||||
import config
|
||||
import urllib2
|
||||
|
||||
class SettingsProvider():
|
||||
BASE_PATH = os.path.join(config.savePath, "settings")
|
||||
@@ -146,4 +147,27 @@ class ProxySettings():
|
||||
self.serviceProxySettings["port"] = port
|
||||
|
||||
def setType(self, type):
|
||||
self.serviceProxySettings["type"] = type
|
||||
self.serviceProxySettings["type"] = type
|
||||
|
||||
def autodetect(self):
|
||||
|
||||
proxy = None
|
||||
proxAddr = proxPort = ""
|
||||
proxydict = urllib2.ProxyHandler().proxies
|
||||
txt = "Auto-detected: "
|
||||
|
||||
validPrefixes = ("https", "http")
|
||||
|
||||
for prefix in validPrefixes:
|
||||
if not prefix in proxydict:
|
||||
continue
|
||||
proxyline = proxydict[prefix]
|
||||
proto = "{0}://".format(prefix)
|
||||
if proxyline[:len(proto)] == proto:
|
||||
proxyline = proxyline[len(proto):]
|
||||
proxAddr, proxPort = proxyline.split(":")
|
||||
proxPort = proxPort.rstrip("/")
|
||||
proxy = proto + proxAddr + proxPort
|
||||
break
|
||||
|
||||
return proxy
|
||||
Reference in New Issue
Block a user