From b5d1891ca2c0b9e34ba0de728ae7bc59b789cba7 Mon Sep 17 00:00:00 2001 From: Thom van der Steenhoven Date: Wed, 25 Oct 2023 17:15:51 +0200 Subject: [PATCH 1/3] Fix Python client TCPTransports not being able to close --- erpc_python/erpc/transport.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/erpc_python/erpc/transport.py b/erpc_python/erpc/transport.py index 00df59085..9c5c06679 100644 --- a/erpc_python/erpc/transport.py +++ b/erpc_python/erpc/transport.py @@ -166,7 +166,8 @@ def _serve(self): self._serverSockEventStart.set() def close(self): - self._serverSockEventStart.clear() + if self._isServer: + self._serverSockEventStart.clear() self._sock.close() self._sock = None From c99abab867c2fdacb307710b6f3a9a68c2631222 Mon Sep 17 00:00:00 2001 From: Thom van der Steenhoven Date: Thu, 26 Oct 2023 06:59:22 +0200 Subject: [PATCH 2/3] Shutdown socket before close --- erpc_python/erpc/transport.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/erpc_python/erpc/transport.py b/erpc_python/erpc/transport.py index 9c5c06679..7131cfd94 100644 --- a/erpc_python/erpc/transport.py +++ b/erpc_python/erpc/transport.py @@ -10,6 +10,8 @@ import struct import socket import threading +from _socket import SHUT_RDWR + from .crc16 import Crc16 from .client import RequestError import time @@ -168,6 +170,7 @@ def _serve(self): def close(self): if self._isServer: self._serverSockEventStart.clear() + self._sock.shutdown(SHUT_RDWR) self._sock.close() self._sock = None From 70d9e68e1cb7432d9d66116869478f977e2a5dc2 Mon Sep 17 00:00:00 2001 From: Thom van der Steenhoven Date: Mon, 4 Dec 2023 13:18:48 +0100 Subject: [PATCH 3/3] Replace unnecessary private import --- erpc_python/erpc/transport.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpc_python/erpc/transport.py b/erpc_python/erpc/transport.py index 7131cfd94..1fd694bb3 100644 --- a/erpc_python/erpc/transport.py +++ b/erpc_python/erpc/transport.py @@ -10,7 +10,7 @@ import struct import socket import threading -from _socket import SHUT_RDWR +from socket import SHUT_RDWR from .crc16 import Crc16 from .client import RequestError