Example #1
0
    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()
Example #2
0
    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()
Example #3
0
    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()
Example #4
0
  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()
Example #5
0
    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()