From aa7c52db0d26044bdbd755fc12f154e05e421087 Mon Sep 17 00:00:00 2001 From: Max Lapan Date: Tue, 19 Jun 2018 13:37:53 +0300 Subject: [PATCH] Handling the situations when _rsock is None --- py3/pycos/__init__.py | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/py3/pycos/__init__.py b/py3/pycos/__init__.py index 96a828d..02c15ae 100644 --- a/py3/pycos/__init__.py +++ b/py3/pycos/__init__.py @@ -261,30 +261,32 @@ def setblocking(self, blocking): self._blocking = blocking if self._blocking: self._unregister() - self._rsock.setblocking(1) - if self._certfile: - self._rsock = ssl.wrap_socket(self._rsock, keyfile=self._keyfile, - certfile=self._certfile, - ssl_version=self._ssl_version) - for name in ['recv', 'send', 'recvfrom', 'sendto', 'accept', 'connect']: - setattr(self, name, getattr(self._rsock, name)) - if self._rsock.type & socket.SOCK_STREAM: - self.recvall = self._sync_recvall - self.sendall = self._sync_sendall - self.recv_msg = self._sync_recv_msg - self.send_msg = self._sync_send_msg - self.accept = self._sync_accept + if self._rsock is not None: + self._rsock.setblocking(1) + if self._certfile: + self._rsock = ssl.wrap_socket(self._rsock, keyfile=self._keyfile, + certfile=self._certfile, + ssl_version=self._ssl_version) + for name in ['recv', 'send', 'recvfrom', 'sendto', 'accept', 'connect']: + setattr(self, name, getattr(self._rsock, name)) + if self._rsock.type & socket.SOCK_STREAM: + self.recvall = self._sync_recvall + self.sendall = self._sync_sendall + self.recv_msg = self._sync_recv_msg + self.send_msg = self._sync_send_msg + self.accept = self._sync_accept self._scheduler = None self._notifier = None else: - self._rsock.setblocking(0) + if self._rsock is not None: + self._rsock.setblocking(0) self.recv = self._async_recv self.send = self._async_send self.recvfrom = self._async_recvfrom self.sendto = self._async_sendto self.accept = self._async_accept self.connect = self._async_connect - if self._rsock.type & socket.SOCK_STREAM: + if self._rsock is not None and self._rsock.type & socket.SOCK_STREAM: self.recvall = self._async_recvall self.sendall = self._async_sendall self.recv_msg = self._async_recv_msg