您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 

139 行
3.5 KiB

  1. cdef enum SSLProtocolState:
  2. UNWRAPPED = 0
  3. DO_HANDSHAKE = 1
  4. WRAPPED = 2
  5. FLUSHING = 3
  6. SHUTDOWN = 4
  7. cdef enum AppProtocolState:
  8. # This tracks the state of app protocol (https://git.io/fj59P):
  9. #
  10. # INIT -cm-> CON_MADE [-dr*->] [-er-> EOF?] -cl-> CON_LOST
  11. #
  12. # * cm: connection_made()
  13. # * dr: data_received()
  14. # * er: eof_received()
  15. # * cl: connection_lost()
  16. STATE_INIT = 0
  17. STATE_CON_MADE = 1
  18. STATE_EOF = 2
  19. STATE_CON_LOST = 3
  20. cdef class _SSLProtocolTransport:
  21. cdef:
  22. Loop _loop
  23. SSLProtocol _ssl_protocol
  24. bint _closed
  25. object context
  26. cdef class SSLProtocol:
  27. cdef:
  28. bint _server_side
  29. str _server_hostname
  30. object _sslcontext
  31. object _extra
  32. object _write_backlog
  33. size_t _write_buffer_size
  34. object _waiter
  35. Loop _loop
  36. _SSLProtocolTransport _app_transport
  37. bint _app_transport_created
  38. object _transport
  39. object _ssl_handshake_timeout
  40. object _ssl_shutdown_timeout
  41. object _sslobj
  42. object _sslobj_read
  43. object _sslobj_write
  44. object _incoming
  45. object _incoming_write
  46. object _outgoing
  47. object _outgoing_read
  48. char* _ssl_buffer
  49. size_t _ssl_buffer_len
  50. object _ssl_buffer_view
  51. SSLProtocolState _state
  52. size_t _conn_lost
  53. AppProtocolState _app_state
  54. bint _ssl_writing_paused
  55. bint _app_reading_paused
  56. size_t _incoming_high_water
  57. size_t _incoming_low_water
  58. bint _ssl_reading_paused
  59. bint _app_writing_paused
  60. size_t _outgoing_high_water
  61. size_t _outgoing_low_water
  62. object _app_protocol
  63. bint _app_protocol_is_buffer
  64. object _app_protocol_get_buffer
  65. object _app_protocol_buffer_updated
  66. object _handshake_start_time
  67. object _handshake_timeout_handle
  68. object _shutdown_timeout_handle
  69. cdef _set_app_protocol(self, app_protocol)
  70. cdef _wakeup_waiter(self, exc=*)
  71. cdef _get_extra_info(self, name, default=*)
  72. cdef _set_state(self, SSLProtocolState new_state)
  73. # Handshake flow
  74. cdef _start_handshake(self)
  75. cdef _check_handshake_timeout(self)
  76. cdef _do_handshake(self)
  77. cdef _on_handshake_complete(self, handshake_exc)
  78. # Shutdown flow
  79. cdef _start_shutdown(self, object context=*)
  80. cdef _check_shutdown_timeout(self)
  81. cdef _do_read_into_void(self, object context)
  82. cdef _do_flush(self, object context=*)
  83. cdef _do_shutdown(self, object context=*)
  84. cdef _on_shutdown_complete(self, shutdown_exc)
  85. cdef _abort(self, exc)
  86. # Outgoing flow
  87. cdef _write_appdata(self, list_of_data, object context)
  88. cdef _do_write(self)
  89. cdef _process_outgoing(self)
  90. # Incoming flow
  91. cdef _do_read(self)
  92. cdef _do_read__buffered(self)
  93. cdef _do_read__copied(self)
  94. cdef _call_eof_received(self, object context=*)
  95. # Flow control for writes from APP socket
  96. cdef _control_app_writing(self, object context=*)
  97. cdef size_t _get_write_buffer_size(self)
  98. cdef _set_write_buffer_limits(self, high=*, low=*)
  99. # Flow control for reads to APP socket
  100. cdef _pause_reading(self)
  101. cdef _resume_reading(self, object context)
  102. # Flow control for reads from SSL socket
  103. cdef _control_ssl_reading(self)
  104. cdef _set_read_buffer_limits(self, high=*, low=*)
  105. cdef size_t _get_read_buffer_size(self)
  106. cdef _fatal_error(self, exc, message=*)