You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
3.5 KiB
138 lines
3.5 KiB
cdef enum SSLProtocolState: |
|
UNWRAPPED = 0 |
|
DO_HANDSHAKE = 1 |
|
WRAPPED = 2 |
|
FLUSHING = 3 |
|
SHUTDOWN = 4 |
|
|
|
|
|
cdef enum AppProtocolState: |
|
# This tracks the state of app protocol (https://git.io/fj59P): |
|
# |
|
# INIT -cm-> CON_MADE [-dr*->] [-er-> EOF?] -cl-> CON_LOST |
|
# |
|
# * cm: connection_made() |
|
# * dr: data_received() |
|
# * er: eof_received() |
|
# * cl: connection_lost() |
|
|
|
STATE_INIT = 0 |
|
STATE_CON_MADE = 1 |
|
STATE_EOF = 2 |
|
STATE_CON_LOST = 3 |
|
|
|
|
|
cdef class _SSLProtocolTransport: |
|
cdef: |
|
Loop _loop |
|
SSLProtocol _ssl_protocol |
|
bint _closed |
|
object context |
|
|
|
|
|
cdef class SSLProtocol: |
|
cdef: |
|
bint _server_side |
|
str _server_hostname |
|
object _sslcontext |
|
|
|
object _extra |
|
|
|
object _write_backlog |
|
size_t _write_buffer_size |
|
|
|
object _waiter |
|
Loop _loop |
|
_SSLProtocolTransport _app_transport |
|
bint _app_transport_created |
|
|
|
object _transport |
|
object _ssl_handshake_timeout |
|
object _ssl_shutdown_timeout |
|
|
|
object _sslobj |
|
object _sslobj_read |
|
object _sslobj_write |
|
object _incoming |
|
object _incoming_write |
|
object _outgoing |
|
object _outgoing_read |
|
char* _ssl_buffer |
|
size_t _ssl_buffer_len |
|
object _ssl_buffer_view |
|
SSLProtocolState _state |
|
size_t _conn_lost |
|
AppProtocolState _app_state |
|
|
|
bint _ssl_writing_paused |
|
bint _app_reading_paused |
|
|
|
size_t _incoming_high_water |
|
size_t _incoming_low_water |
|
bint _ssl_reading_paused |
|
|
|
bint _app_writing_paused |
|
size_t _outgoing_high_water |
|
size_t _outgoing_low_water |
|
|
|
object _app_protocol |
|
bint _app_protocol_is_buffer |
|
object _app_protocol_get_buffer |
|
object _app_protocol_buffer_updated |
|
|
|
object _handshake_start_time |
|
object _handshake_timeout_handle |
|
object _shutdown_timeout_handle |
|
|
|
cdef _set_app_protocol(self, app_protocol) |
|
cdef _wakeup_waiter(self, exc=*) |
|
cdef _get_extra_info(self, name, default=*) |
|
cdef _set_state(self, SSLProtocolState new_state) |
|
|
|
# Handshake flow |
|
|
|
cdef _start_handshake(self) |
|
cdef _check_handshake_timeout(self) |
|
cdef _do_handshake(self) |
|
cdef _on_handshake_complete(self, handshake_exc) |
|
|
|
# Shutdown flow |
|
|
|
cdef _start_shutdown(self, object context=*) |
|
cdef _check_shutdown_timeout(self) |
|
cdef _do_read_into_void(self, object context) |
|
cdef _do_flush(self, object context=*) |
|
cdef _do_shutdown(self, object context=*) |
|
cdef _on_shutdown_complete(self, shutdown_exc) |
|
cdef _abort(self, exc) |
|
|
|
# Outgoing flow |
|
|
|
cdef _write_appdata(self, list_of_data, object context) |
|
cdef _do_write(self) |
|
cdef _process_outgoing(self) |
|
|
|
# Incoming flow |
|
|
|
cdef _do_read(self) |
|
cdef _do_read__buffered(self) |
|
cdef _do_read__copied(self) |
|
cdef _call_eof_received(self, object context=*) |
|
|
|
# Flow control for writes from APP socket |
|
|
|
cdef _control_app_writing(self, object context=*) |
|
cdef size_t _get_write_buffer_size(self) |
|
cdef _set_write_buffer_limits(self, high=*, low=*) |
|
|
|
# Flow control for reads to APP socket |
|
|
|
cdef _pause_reading(self) |
|
cdef _resume_reading(self, object context) |
|
|
|
# Flow control for reads from SSL socket |
|
|
|
cdef _control_ssl_reading(self) |
|
cdef _set_read_buffer_limits(self, high=*, low=*) |
|
cdef size_t _get_read_buffer_size(self) |
|
cdef _fatal_error(self, exc, message=*)
|
|
|