def run(self): """Run the WSGI server in a thread.""" logging.info("Listening on port %d.", self.port) ssl_context = None if config.CONFIG["AdminUI.enable_ssl"]: cert_file = config.CONFIG["AdminUI.ssl_cert_file"] if not cert_file: raise ValueError("Need a valid cert file to enable SSL.") key_file = config.CONFIG["AdminUI.ssl_key_file"] if not key_file: raise ValueError("Need a valid key file to enable SSL.") ssl_context = (cert_file, key_file) # Werkzeug only handles IPv6 if ":" is in the host (i.e. we pass # an IPv6 ip). ip = utils.ResolveHostnameToIP("localhost", self.port) server = serving.make_server(ip, self.port, wsgiapp.AdminUIApp().WSGIHandler(), ssl_context=ssl_context) # We want to notify other threads that we are now ready to serve right # before we enter the serving loop. self.ready_to_serve.set() while self.keep_running: server.handle_request()
def setUpClass(cls): super(GRRHTTPServerTest, cls).setUpClass() cls.config_overrider = test_lib.ConfigOverrider({ "Rekall.profile_server": rekall_test_lib.TestRekallRepositoryProfileServer.__name__, "FileUploadFileStore.root_dir": test_lib.TempDirPath() }) cls.config_overrider.Start() # Frontend must be initialized to register all the stats counters. frontend_lib.FrontendInit().RunOnce() # Bring up a local server for testing. port = portpicker.PickUnusedPort() ip = utils.ResolveHostnameToIP("localhost", port) cls.httpd = frontend.GRRHTTPServer((ip, port), frontend.GRRHTTPServerHandler) if ipaddr.IPAddress(ip).version == 6: cls.address_family = socket.AF_INET6 cls.base_url = "http://[%s]:%d/" % (ip, port) else: cls.address_family = socket.AF_INET cls.base_url = "http://%s:%d/" % (ip, port) cls.httpd_thread = threading.Thread(target=cls.httpd.serve_forever) cls.httpd_thread.daemon = True cls.httpd_thread.start()
def setUpClass(cls): super(GRRHTTPServerTest, cls).setUpClass() cls.config_overrider = test_lib.ConfigOverrider({ "Rekall.profile_server": rekall_test_lib.TestRekallRepositoryProfileServer.__name__, }) cls.config_overrider.Start() # Bring up a local server for testing. port = portpicker.pick_unused_port() ip = utils.ResolveHostnameToIP("localhost", port) cls.httpd = frontend.GRRHTTPServer((ip, port), frontend.GRRHTTPServerHandler) if ipaddr.IPAddress(ip).version == 6: cls.address_family = socket.AF_INET6 cls.base_url = "http://[%s]:%d/" % (ip, port) else: cls.address_family = socket.AF_INET cls.base_url = "http://%s:%d/" % (ip, port) cls.httpd_thread = threading.Thread(name="GRRHTTPServerTestThread", target=cls.httpd.serve_forever) cls.httpd_thread.daemon = True cls.httpd_thread.start()
def setUpClass(cls): super(GRRHTTPServerTest, cls).setUpClass() # Bring up a local server for testing. port = portpicker.pick_unused_port() ip = utils.ResolveHostnameToIP("localhost", port) cls.httpd = frontend.GRRHTTPServer((ip, port), frontend.GRRHTTPServerHandler) if ipaddr.IPAddress(ip).version == 6: cls.address_family = socket.AF_INET6 cls.base_url = "http://[%s]:%d/" % (ip, port) else: cls.address_family = socket.AF_INET cls.base_url = "http://%s:%d/" % (ip, port) cls.httpd_thread = threading.Thread( name="GRRHTTPServerTestThread", target=cls.httpd.serve_forever) cls.httpd_thread.daemon = True cls.httpd_thread.start()
def run(self): """Run the WSGI server in a thread.""" logging.info("Listening on port %d.", self.port) # Werkzeug only handles IPv6 if ":" is in the host (i.e. we pass # an IPv6 ip). ip = utils.ResolveHostnameToIP("localhost", self.port) self.server = wsgiapp.MakeServer( host=ip, port=self.port, max_port=self.port + 1, multi_threaded=False, ) # We want to notify other threads that we are now ready to serve right # before we enter the serving loop. self.ready_to_serve.set() self.server.serve_forever() self.done_serving.set()