Пример #1
0
class TestHTTPReturnJSONHeaders(HandlerTestCase):
    app = http_helpers.HTTPReturnJSONHeadersHelper()

    @defer.inlineCallbacks
    def test_get_request(self):
        response = yield self.request('/', "GET",
                                      headers={'X-Antani': ['Spam']})
        response_body = json.loads(response.body)
        self.assertIn("headers_dict", response_body)
        self.assertIn("X-Antani", response_body['headers_dict'])
        self.assertIn(["X-Antani", "Spam"], response_body['request_headers'])
        self.assertEqual("GET / HTTP/1.1", response_body['request_line'])
Пример #2
0
from oonib import db_threadpool
from oonib import config

if config.main.uid and config.main.gid:
    application = service.Application('oonibackend',
                                      uid=config.main.uid,
                                      gid=config.main.gid)
else:
    application = service.Application('oonibackend')

serviceCollection = service.IServiceCollection(application)

if config.helpers.ssl.port:
    print "Starting SSL helper on %s" % config.helpers.ssl.port
    ssl_helper = internet.SSLServer(int(config.helpers.ssl.port),
                                    http_helpers.HTTPReturnJSONHeadersHelper(),
                                    ssl_helpers.SSLContext(config))
    ssl_helper.setServiceParent(serviceCollection)

# Start the DNS Server related services
if config.helpers.dns.tcp_port:
    print "Starting TCP DNS Helper on %s" % config.helpers.dns.tcp_port
    tcp_dns_helper = internet.TCPServer(int(config.helpers.dns.tcp_port),
                                        dns_helpers.DNSTestHelper())
    tcp_dns_helper.setServiceParent(serviceCollection)

if config.helpers.dns.udp_port:
    print "Starting UDP DNS Helper on %s" % config.helpers.dns.udp_port
    udp_dns_factory = dns.DNSDatagramProtocol(dns_helpers.DNSTestHelper())
    udp_dns_helper = internet.UDPServer(int(config.helpers.dns.udp_port),
                                        udp_dns_factory)
Пример #3
0
    def makeService(self, so):
        ooniBackendService = service.MultiService()

        if config.helpers['ssl'].port:
            print "Starting SSL helper on %s" % config.helpers['ssl'].port
            ssl_helper = internet.SSLServer(
                int(config.helpers['ssl'].port),
                http_helpers.HTTPReturnJSONHeadersHelper(),
                ssl_helpers.SSLContext(config))
            ooniBackendService.addService(ssl_helper)

        # Start the DNS Server related services
        if config.helpers['dns'].tcp_port:
            print "Starting TCP DNS Helper on %s" % config.helpers[
                'dns'].tcp_port
            tcp_dns_helper = internet.TCPServer(
                int(config.helpers['dns'].tcp_port),
                dns_helpers.DNSTestHelper())
            ooniBackendService.addService(tcp_dns_helper)

        if config.helpers['dns'].udp_port:
            print "Starting UDP DNS Helper on %s" % config.helpers[
                'dns'].udp_port
            udp_dns_factory = dns.DNSDatagramProtocol(
                dns_helpers.DNSTestHelper())
            udp_dns_helper = internet.UDPServer(
                int(config.helpers['dns'].udp_port), udp_dns_factory)
            ooniBackendService.addService(udp_dns_helper)

        if config.helpers['dns_discovery'].udp_port:
            print("Starting UDP DNS Discovery Helper on %s" %
                  config.helpers['dns_discovery'].udp_port)
            udp_dns_discovery = internet.UDPServer(
                int(config.helpers['dns_discovery'].udp_port),
                dns.DNSDatagramProtocol(dns_helpers.DNSResolverDiscovery()))
            ooniBackendService.addService(udp_dns_discovery)

        if config.helpers['dns_discovery'].tcp_port:
            print("Starting TCP DNS Discovery Helper on %s" %
                  config.helpers['dns_discovery'].tcp_port)
            tcp_dns_discovery = internet.TCPServer(
                int(config.helpers['dns_discovery'].tcp_port),
                dns_helpers.DNSResolverDiscovery())
            ooniBackendService.addService(tcp_dns_discovery)

        # XXX this needs to be ported
        # Start the OONI daphn3 backend
        if config.helpers['daphn3'].port:
            print "Starting Daphn3 helper on %s" % config.helpers['daphn3'].port
            daphn3_helper = internet.TCPServer(
                int(config.helpers['daphn3'].port), tcp_helpers.Daphn3Server())
            ooniBackendService.addService(daphn3_helper)

        if config.helpers['tcp-echo'].port:
            print "Starting TCP echo helper on %s" % config.helpers[
                'tcp-echo'].port
            tcp_echo_helper = internet.TCPServer(
                int(config.helpers['tcp-echo'].port),
                tcp_helpers.TCPEchoHelper())
            ooniBackendService.addService(tcp_echo_helper)

        if config.helpers['http-return-json-headers'].port:
            print("Starting HTTP return request helper on %s" %
                  config.helpers['http-return-json-headers'].port)
            http_return_request_helper = internet.TCPServer(
                int(config.helpers['http-return-json-headers'].port),
                http_helpers.HTTPReturnJSONHeadersHelper())
            ooniBackendService.addService(http_return_request_helper)

        # this is to ensure same behaviour with an old config file
        if config.main.tor_hidden_service and \
                config.main.bouncer_endpoints is None and \
                config.main.collector_endpoints is None:
            bouncer_hsdir = os.path.join(config.main.tor_datadir, 'bouncer')
            collector_hsdir = os.path.join(config.main.tor_datadir,
                                           'collector')
            config.main.bouncer_endpoints = [{
                'type': 'onion',
                'hsdir': bouncer_hsdir
            }]
            config.main.collector_endpoints = [{
                'type': 'onion',
                'hsdir': collector_hsdir
            }]

        for endpoint_config in config.main.get('bouncer_endpoints', []):
            if config.main.bouncer_file:
                print "Starting bouncer with config %s" % endpoint_config
                endpoint = getEndpoint(endpoint_config)
                bouncer_service = createService(endpoint, 'bouncer',
                                                endpoint_config)
                ooniBackendService.addService(bouncer_service)
            else:
                print "No bouncer configured"

        for endpoint_config in config.main.get('collector_endpoints', []):
            print "Starting collector with config %s" % endpoint_config
            endpoint = getEndpoint(endpoint_config)
            collector_service = createService(endpoint, 'collector',
                                              endpoint_config)
            ooniBackendService.addService(collector_service)

        for endpoint_config in config.helpers.web_connectivity.get(
                'endpoints', []):
            print "Starting web_connectivity helper with config %s" % endpoint_config
            endpoint = getEndpoint(endpoint_config)
            web_connectivity_service = createService(endpoint,
                                                     'web_connectivity',
                                                     endpoint_config)
            ooniBackendService.addService(web_connectivity_service)

        return ooniBackendService