diff --git a/uvloop/sslproto.pxd b/uvloop/sslproto.pxd index cf3205d1..989387e8 100644 --- a/uvloop/sslproto.pxd +++ b/uvloop/sslproto.pxd @@ -57,6 +57,7 @@ cdef class SSLProtocol: object _incoming_write object _outgoing object _outgoing_read + object _ssl_read_max_size_obj char* _ssl_buffer size_t _ssl_buffer_len SSLProtocolState _state diff --git a/uvloop/sslproto.pyx b/uvloop/sslproto.pyx index 5442b5d0..959a5b40 100644 --- a/uvloop/sslproto.pyx +++ b/uvloop/sslproto.pyx @@ -200,6 +200,7 @@ cdef class SSLProtocol: """ def __cinit__(self, *args, **kwargs): + self._ssl_read_max_size_obj = SSL_READ_MAX_SIZE self._ssl_buffer_len = SSL_READ_MAX_SIZE self._ssl_buffer = PyMem_RawMalloc(self._ssl_buffer_len) if not self._ssl_buffer: @@ -596,7 +597,7 @@ cdef class SSLProtocol: bint close_notify = False try: while True: - if not self._sslobj_read(SSL_READ_MAX_SIZE): + if not self._sslobj_read(self._ssl_read_max_size_obj): close_notify = True break except ssl_SSLAgainErrors as exc: @@ -785,7 +786,7 @@ cdef class SSLProtocol: try: while True: - chunk = self._sslobj_read(SSL_READ_MAX_SIZE) + chunk = self._sslobj_read(self._ssl_read_max_size_obj) if not chunk: break if zero: