Esempio n. 1
0
 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)
Esempio n. 2
0
 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
 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)
Esempio n. 5
0
 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)
Esempio n. 6
0
 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
Esempio n. 7
0
 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
Esempio n. 8
0
 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)
Esempio n. 9
0
 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