From a77331e725ebe396d73181cc3b83d7f2db1aae76 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 5 Dec 2023 13:51:03 +1100 Subject: [PATCH] AP_HAL: mark socket as not connected on EOF this allows lua scripts to properly detect a closed TCP connection --- libraries/AP_HAL/utility/Socket.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/AP_HAL/utility/Socket.cpp b/libraries/AP_HAL/utility/Socket.cpp index 9b9698eb79..faab14d3d2 100644 --- a/libraries/AP_HAL/utility/Socket.cpp +++ b/libraries/AP_HAL/utility/Socket.cpp @@ -295,6 +295,10 @@ ssize_t SocketAPM::recv(void *buf, size_t size, uint32_t timeout_ms) ssize_t ret; ret = CALL_PREFIX(recvfrom)(fin, buf, size, MSG_DONTWAIT, (sockaddr *)&in_addr, &len); if (ret <= 0) { + if (!datagram && connected && ret == 0) { + // remote host has closed connection + connected = false; + } return ret; } if (fd_in != -1) {