def operation(self): net_agent = GLSettings.get_agent() try: log.debug('Fetching list of Tor exit nodes') yield GLSettings.appstate.tor_exit_set.update(net_agent) except ConnectionRefusedError as e: log.err('Exit relay fetch failed: %s' % e) log.debug('Retrieved a list of %d exit nodes' % len(GLSettings.appstate.tor_exit_set))
def post(self): if GLSettings.memory_copy.hostname == '': raise errors.ValidationError('hostname is not set') net_agent = GLSettings.get_agent() t = ('http', GLSettings.memory_copy.hostname, 'robots.txt', None, None) url = bytes(urlparse.urlunsplit(t)) try: resp = yield net_agent.request('GET', url) body = yield readBody(resp) server_h = resp.headers.getRawHeaders('Server', [None])[-1].lower() if not body.startswith('User-agent: *') or server_h != 'globaleaks': raise EnvironmentError('Response unexpected') except (EnvironmentError, ConnectError) as e: log.err(e) raise errors.ExternalResourceError()
def operation(self): net_agent = GLSettings.get_agent() log.debug('Fetching list of Tor exit nodes') yield GLSettings.appstate.tor_exit_set.update(net_agent) log.debug('Retrieved a list of %d exit nodes', len(GLSettings.appstate.tor_exit_set))
def fetch_packages_file(self): agent = GLSettings.get_agent() return get_page(agent, DEB_PACKAGE_URL)
def _operation(self): net_agent = GLSettings.get_agent() yield GLSettings.state.tor_exit_set.update(net_agent)