예제 #1
0
                                        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)
    udp_dns_helper.setServiceParent(serviceCollection)

# 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())
    daphn3_helper.setServiceParent(serviceCollection)

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())
    tcp_echo_helper.setServiceParent(serviceCollection)

if config.helpers.http_return_request.port:
    print "Starting HTTP return request helper on %s" % config.helpers.http_return_request.port
    http_return_request_helper = internet.TCPServer(
        int(config.helpers.http_return_request.port),
        http_helpers.HTTPReturnJSONHeadersHelper())
    http_return_request_helper.setServiceParent(serviceCollection)
예제 #2
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