Skip to content

Commit de0f49b

Browse files
authored
Merge pull request #743 from brubbel/fix_ebadf_bis
fix client.disconnect() OSError: [Errno 9/107] EBADF/ENOTCONN
2 parents f5382f1 + 1cceb10 commit de0f49b

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

opcua/client/ua_client.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,8 @@ def disconnect_socket(self):
147147
self._do_stop = True
148148
try:
149149
self._socket.socket.shutdown(socket.SHUT_RDWR)
150-
except OSError as exc:
151-
if exc.errno == errno.ENOTCONN:
150+
except (socket.error, OSError) as exc:
151+
if exc.errno in (errno.ENOTCONN, errno.EBADF):
152152
pass # Socket is not connected, so can't send FIN packet.
153153
else:
154154
raise
@@ -198,8 +198,8 @@ def close_secure_channel(self):
198198
with self._lock:
199199
# some servers send a response here, most do not ... so we ignore
200200
future.cancel()
201-
except OSError as exc:
202-
if exc.errno == errno.EBADF:
201+
except (socket.error, OSError) as exc:
202+
if exc.errno in (errno.ENOTCONN, errno.EBADF):
203203
# Socket is closed, so can't send CloseSecureChannelRequest.
204204
self.logger.warning("close_secure_channel() failed: socket already closed")
205205
else:

0 commit comments

Comments
 (0)