def check_proxy_settings(proxy_settings, dialog): if proxy_settings.config == 'None': return True try: proxies, _ = get_proxies_for_handler(proxy_settings) proxy_handler = get_proxy_handler(proxies) if proxy_handler.proxies: # System or manual proxy set, try a GET on test URL opener = urllib2.build_opener(proxy_handler) protocol = proxy_handler.proxies.iterkeys().next() test_url = protocol + '://' + PROXY_TEST_HOST opener.open(urllib2.Request(test_url)) return True except socket.timeout: return handle_error(timeout_msg, dialog, tab_index=2) except urllib2.HTTPError as e: msg = "HTTP error %d" % e.code if hasattr(e, 'msg'): msg = msg + ": " + e.msg return handle_error(msg, dialog, tab_index=2) except Exception as e: if hasattr(e, 'msg'): msg = e.msg else: msg = "Unable to connect to proxy server." return handle_error(msg, dialog, tab_index=2)
def check_proxy_settings(proxy_settings, dialog): if proxy_settings.config == 'None': return True try: proxies, _ = get_proxies_for_handler(proxy_settings) proxy_handler = get_proxy_handler(proxies) if proxy_handler.proxies: # System or manual proxy set, try a GET on test URL opener = urllib2.build_opener(proxy_handler) protocol = proxy_handler.proxies.iterkeys().next() test_url = protocol + '://' + PROXY_TEST_HOST opener.open(urllib2.Request(test_url)) return True except socket.timeout: return handle_error(timeout_msg, dialog, tab_index=1, debug=True) except urllib2.HTTPError as e: msg = "HTTP error %d" % e.code if hasattr(e, 'msg'): msg = msg + ": " + e.msg return handle_error(msg, dialog, tab_index=1, debug=True) except Exception as e: if hasattr(e, 'msg'): msg = e.msg else: msg = "Unable to connect to proxy server." return handle_error(msg, dialog, tab_index=1, debug=True)
def refresh_proxies(self, proxy_settings=None, device_config=None): """Refresh current proxies with the given settings""" log.trace("Manager.refresh_proxies(proxy_settings=%r, device_config=%r)", proxy_settings, device_config) # If no proxy settings passed fetch them from database proxy_settings = (proxy_settings if proxy_settings is not None else self.get_proxy_settings()) if proxy_settings.config == 'Manual' or proxy_settings.config == 'System': self.proxies["default"], self.proxy_exceptions = get_proxies_for_handler( proxy_settings) log.trace("Setting self.proxies['default'] = %r", self.proxies["default"]) elif proxy_settings.config == 'Automatic': if self._engine_definitions: for engine_def in self._engine_definitions: server_url = self._engines[engine_def.uid].get_server_url() log.trace("Finding Proxy (engine_uid: %r) for server_url: %s", engine_def.uid, server_url) self.proxies[server_url] = proxy_settings.get_proxies_automatic(server_url) log.trace("Setting self.proxies[%r] = %r", server_url, self.proxies[server_url]) else: log.trace("No Engine connected yet. So configuring default proxy against www.google.com") self.proxies["default"] = proxy_settings.get_proxies_automatic("http://www.google.com") log.trace("Setting self.proxies['default'] = %r", self.proxies["default"]) else: log.trace("Setting self.proxies['default']: {}") self.proxies["default"], self.proxy_exceptions = {}, None self.proxyUpdated.emit(proxy_settings)
def refresh_proxies(self, proxy_settings=None, device_config=None): """Refresh current proxies with the given settings""" # If no proxy settings passed fetch them from database proxy_settings = (proxy_settings if proxy_settings is not None else self.get_proxy_settings(device_config=device_config)) self.proxies, self.proxy_exceptions = get_proxies_for_handler( proxy_settings)
def refresh_proxies(self, proxy_settings=None, device_config=None): """Refresh current proxies with the given settings""" # If no proxy settings passed fetch them from database proxy_settings = (proxy_settings if proxy_settings is not None else self.get_proxy_settings()) self.proxies, self.proxy_exceptions = get_proxies_for_handler( proxy_settings) self.proxyUpdated.emit(proxy_settings)
def validate_proxy_settings(self, proxy_settings): try: import urllib2 proxies, _ = get_proxies_for_handler(proxy_settings) # Try google website url = "http://www.google.com" opener = urllib2.build_opener(urllib2.ProxyHandler(proxies), urllib2.HTTPBasicAuthHandler(), urllib2.HTTPHandler) urllib2.install_opener(opener) conn = urllib2.urlopen(url) conn.read() except Exception as e: log.error("Exception setting proxy : %s", e) return False return True
def check_proxy_settings(proxy_settings, dialog): if proxy_settings.config == 'None': return True try: proxies, _ = get_proxies_for_handler(proxy_settings) proxy_handler = get_proxy_handler(proxies) opener = urllib2.build_opener(proxy_handler) opener.open(urllib2.Request(PROXY_TEST_URL)) return True except socket.timeout: return handle_error(timeout_msg, dialog, tab_index=1, debug=True) except urllib2.HTTPError as e: msg = "HTTP error %d" % e.code if hasattr(e, 'msg'): msg = msg + ": " + e.msg return handle_error(msg, dialog, tab_index=1, debug=True) except Exception as e: if hasattr(e, 'msg'): msg = e.msg else: msg = "Unable to connect to proxy server." return handle_error(msg, dialog, tab_index=1, debug=True)
def validate_proxy_settings(self, proxy_settings): conn = None # Try google website url = "http://www.google.com" try: if proxy_settings.config == 'Manual' or proxy_settings.config == 'System': proxies, _ = get_proxies_for_handler(proxy_settings) opener = urllib2.build_opener(urllib2.ProxyHandler(proxies), urllib2.HTTPBasicAuthHandler(), urllib2.HTTPHandler) urllib2.install_opener(opener) conn = urllib2.urlopen(url) conn.read() elif proxy_settings.config == 'Automatic': pac_script = "" conn = urllib2.urlopen(proxy_settings.pac_url) if conn: pac_script = conn.read() pac_data = pypac.parser.PACFile(pac_script) resolver = pypac.resolver.ProxyResolver(pac_data) if self._engine_definitions: # Check if every server url can be resolved to some proxy server for engine_def in self._engine_definitions: url = self._engines[engine_def.uid].get_server_url() ret = resolver.get_proxies(url) log.trace("[automatic] proxies for url: %r is %r", url, ret) else: ret = resolver.get_proxies(url) log.trace("[automatic] proxies for url: %r is %r", url, ret) except Exception as e: log.error("Exception (%s) when validating proxy server for url: %r", str(e), url) return False finally: if conn: conn.close() return True