1import enum
2
3# After the connection is lost, log warnings after this many write()s.
4LOG_THRESHOLD_FOR_CONNLOST_WRITES = 5
5
6# Seconds to wait before retrying accept().
7ACCEPT_RETRY_DELAY = 1
8
9# Number of stack entries to capture in debug mode.
10# The larger the number, the slower the operation in debug mode
11# (see extract_stack() in format_helpers.py).
12DEBUG_STACK_DEPTH = 10
13
14# Number of seconds to wait for SSL handshake to complete
15# The default timeout matches that of Nginx.
16SSL_HANDSHAKE_TIMEOUT = 60.0
17
18# Number of seconds to wait for SSL shutdown to complete
19# The default timeout mimics lingering_time
20SSL_SHUTDOWN_TIMEOUT = 30.0
21
22# Used in sendfile fallback code.  We use fallback for platforms
23# that don't support sendfile, or for TLS connections.
24SENDFILE_FALLBACK_READBUFFER_SIZE = 1024 * 256
25
26FLOW_CONTROL_HIGH_WATER_SSL_READ = 256  # KiB
27FLOW_CONTROL_HIGH_WATER_SSL_WRITE = 512  # KiB
28
29# The enum should be here to break circular dependencies between
30# base_events and sslproto
31class _SendfileMode(enum.Enum):
32    UNSUPPORTED = enum.auto()
33    TRY_NATIVE = enum.auto()
34    FALLBACK = enum.auto()
35