Home / Class/ TLSServer Class — requests Architecture

TLSServer Class — requests Architecture

Architecture documentation for the TLSServer class in server.py from the requests codebase.

Entity Profile

Dependency Diagram

graph TD
  207e6e20_ab2b_b659_8f1d_9639fb3f1963["TLSServer"]
  b9ecf8db_ec54_4dfb_626c_b3769674f676["Server"]
  207e6e20_ab2b_b659_8f1d_9639fb3f1963 -->|extends| b9ecf8db_ec54_4dfb_626c_b3769674f676
  1299f040_d82e_36bb_76ee_892d203f2f6a["server.py"]
  207e6e20_ab2b_b659_8f1d_9639fb3f1963 -->|defined in| 1299f040_d82e_36bb_76ee_892d203f2f6a
  57862e67_2a58_fb51_1935_20f3df30e850["__init__()"]
  207e6e20_ab2b_b659_8f1d_9639fb3f1963 -->|method| 57862e67_2a58_fb51_1935_20f3df30e850
  9c1fe96e_f734_d307_2548_811db53b8f96["_create_socket_and_bind()"]
  207e6e20_ab2b_b659_8f1d_9639fb3f1963 -->|method| 9c1fe96e_f734_d307_2548_811db53b8f96

Relationship Graph

Source Code

tests/testserver/server.py lines 138–176

class TLSServer(Server):
    def __init__(
        self,
        *,
        handler=None,
        host="localhost",
        port=0,
        requests_to_handle=1,
        wait_to_close_event=None,
        cert_chain=None,
        keyfile=None,
        mutual_tls=False,
        cacert=None,
    ):
        super().__init__(
            handler=handler,
            host=host,
            port=port,
            requests_to_handle=requests_to_handle,
            wait_to_close_event=wait_to_close_event,
        )
        self.cert_chain = cert_chain
        self.keyfile = keyfile
        self.ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
        self.ssl_context.load_cert_chain(self.cert_chain, keyfile=self.keyfile)
        self.mutual_tls = mutual_tls
        self.cacert = cacert
        if mutual_tls:
            # For simplicity, we're going to assume that the client cert is
            # issued by the same CA as our Server certificate
            self.ssl_context.verify_mode = ssl.CERT_OPTIONAL
            self.ssl_context.load_verify_locations(self.cacert)

    def _create_socket_and_bind(self):
        sock = socket.socket()
        sock = self.ssl_context.wrap_socket(sock, server_side=True)
        sock.bind((self.host, self.port))
        sock.listen()
        return sock

Domain

Extends

Frequently Asked Questions

What is the TLSServer class?
TLSServer is a class in the requests codebase, defined in tests/testserver/server.py.
Where is TLSServer defined?
TLSServer is defined in tests/testserver/server.py at line 138.
What does TLSServer extend?
TLSServer extends Server.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free