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))
Exemple #2
0
    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))
Exemple #4
0
 def fetch_packages_file(self):
     agent = GLSettings.get_agent()
     return get_page(agent, DEB_PACKAGE_URL)
Exemple #5
0
 def _operation(self):
     net_agent = GLSettings.get_agent()
     yield GLSettings.state.tor_exit_set.update(net_agent)