From d712568b8fca6bbae1a626532c3813a2e480b367 Mon Sep 17 00:00:00 2001 From: Veijo Pesonen Date: Mon, 28 Jan 2019 12:13:57 +0200 Subject: [PATCH 1/2] ESP8266: with empty packet send returns zero if TCP, unsupported otherwise --- components/wifi/esp8266-driver/ESP8266Interface.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/components/wifi/esp8266-driver/ESP8266Interface.cpp b/components/wifi/esp8266-driver/ESP8266Interface.cpp index 08c9100587..eea53d71a4 100644 --- a/components/wifi/esp8266-driver/ESP8266Interface.cpp +++ b/components/wifi/esp8266-driver/ESP8266Interface.cpp @@ -568,6 +568,11 @@ int ESP8266Interface::socket_send(void *handle, const void *data, unsigned size) return NSAPI_ERROR_NO_SOCKET; } + if (!size) { + // Firmware limitation + return socket->proto == NSAPI_TCP ? 0 : NSAPI_ERROR_UNSUPPORTED; + } + unsigned long int sendStartTime = rtos::Kernel::get_ms_count(); do { status = _esp.send(socket->id, data, size); From b0fca1ffc8e216c65463f8e5dbb60e0f0f0c6311 Mon Sep 17 00:00:00 2001 From: Veijo Pesonen Date: Mon, 28 Jan 2019 12:43:51 +0200 Subject: [PATCH 2/2] Test UDPSOCKET_SENDTO_INVALID allows NSAPI_ERROR_UNSUPPORTED --- TESTS/netsocket/udp/udpsocket_sendto_invalid.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/TESTS/netsocket/udp/udpsocket_sendto_invalid.cpp b/TESTS/netsocket/udp/udpsocket_sendto_invalid.cpp index 6b16c28a15..a911c8a533 100644 --- a/TESTS/netsocket/udp/udpsocket_sendto_invalid.cpp +++ b/TESTS/netsocket/udp/udpsocket_sendto_invalid.cpp @@ -32,7 +32,12 @@ void UDPSOCKET_SENDTO_INVALID() TEST_ASSERT(sock.sendto(NULL, 9, NULL, 0) < 0); TEST_ASSERT(sock.sendto("", 9, NULL, 0) < 0); TEST_ASSERT(sock.sendto("", 0, NULL, 0) < 0); - TEST_ASSERT_EQUAL(0, sock.sendto(MBED_CONF_APP_ECHO_SERVER_ADDR, 9, NULL, 0)); + + nsapi_error_t result = sock.sendto(MBED_CONF_APP_ECHO_SERVER_ADDR, 9, NULL, 0); + if (result != NSAPI_ERROR_UNSUPPORTED) { + TEST_ASSERT_EQUAL(0, result); + } + TEST_ASSERT_EQUAL(5, sock.sendto(MBED_CONF_APP_ECHO_SERVER_ADDR, 9, "hello", 5)); TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.close());