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)
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