Merge pull request #9515 from VeijoPesonen/bugfix-tests-netsocket-udp_udpsocket_sendto_invalid

tests-netsocket-udp UDPSOCKET_SENDTO_INVALID allow unsupported empty UDP packet
pull/9541/head
Martin Kojtal 2019-01-30 10:08:34 +01:00 committed by GitHub
commit a4ed473afc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 1 deletions

View File

@ -32,7 +32,12 @@ void UDPSOCKET_SENDTO_INVALID()
TEST_ASSERT(sock.sendto(NULL, 9, NULL, 0) < 0); TEST_ASSERT(sock.sendto(NULL, 9, NULL, 0) < 0);
TEST_ASSERT(sock.sendto("", 9, NULL, 0) < 0); TEST_ASSERT(sock.sendto("", 9, NULL, 0) < 0);
TEST_ASSERT(sock.sendto("", 0, 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(5, sock.sendto(MBED_CONF_APP_ECHO_SERVER_ADDR, 9, "hello", 5));
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.close()); TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.close());

View File

@ -568,6 +568,11 @@ int ESP8266Interface::socket_send(void *handle, const void *data, unsigned size)
return NSAPI_ERROR_NO_SOCKET; 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(); unsigned long int sendStartTime = rtos::Kernel::get_ms_count();
do { do {
status = _esp.send(socket->id, data, size); status = _esp.send(socket->id, data, size);