From 96310f6d31ce0f68f0ec86bbd45c35a19d6c4448 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrico=20Tr=C3=B6ger?= Date: Wed, 3 Jan 2024 19:31:23 +0100 Subject: [PATCH] On closing UDP/TCP socket, make sure it is reset This prevents re-using a possibly non-working socket instance in later send attempts which cannot work. Closes #89. --- logstash_async/transport.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/logstash_async/transport.py b/logstash_async/transport.py index d4e16bd..7774dc9 100644 --- a/logstash_async/transport.py +++ b/logstash_async/transport.py @@ -133,10 +133,12 @@ def _convert_data_to_send(self, data): def _close(self, force=False): if not self._keep_connection or force: if self._sock: - self._wait_for_socket_buffer_empty() - self._sock.shutdown(socket.SHUT_WR) - self._sock.close() - self._sock = None + try: + self._wait_for_socket_buffer_empty() + self._sock.shutdown(socket.SHUT_WR) + self._sock.close() + finally: + self._sock = None # ---------------------------------------------------------------------- def _wait_for_socket_buffer_empty(self):