From d1995e50ebda074f8151609bb4c95d4c31072513 Mon Sep 17 00:00:00 2001 From: Damien George Date: Sun, 30 Aug 2020 13:20:51 +1000 Subject: extmod/modlwip: Fix error return for TCP recv when not connected. This commit fixes the cases when a TCP socket is in STATE_NEW, STATE_LISTENING or STATE_CONNECTING and recv() is called on it. It now raises ENOTCONN instead of a random error code due to it previously indexing beyond the start of error_lookup_table[]. Signed-off-by: Damien George --- tests/extmod/usocket_tcp_basic.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/extmod/usocket_tcp_basic.py (limited to 'tests') diff --git a/tests/extmod/usocket_tcp_basic.py b/tests/extmod/usocket_tcp_basic.py new file mode 100644 index 000000000..368dfe3c9 --- /dev/null +++ b/tests/extmod/usocket_tcp_basic.py @@ -0,0 +1,17 @@ +# Test basic, stand-alone TCP socket functionality + +try: + import usocket as socket, uerrno as errno +except ImportError: + try: + import socket, errno + except ImportError: + print("SKIP") + raise SystemExit + +# recv() on a fresh socket should raise ENOTCONN +s = socket.socket() +try: + s.recv(1) +except OSError as er: + print("ENOTCONN:", er.args[0] == errno.ENOTCONN) -- cgit v1.2.3