Skip to content

Commit bc92047

Browse files
facchinmmanchoz
authored andcommitted
MbedUDP: take into account write() errors
1 parent 123694b commit bc92047

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

libraries/SocketWrapper/src/MbedUdp.cpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,20 @@ int arduino::MbedUDP::endPacket() {
7676

7777
// Write a single byte into the packet
7878
size_t arduino::MbedUDP::write(uint8_t byte) {
79-
uint8_t buffer[1] = { byte };
80-
return _socket.sendto(_host, buffer, 1);
79+
return write(&byte, 1);
8180
}
8281

8382
// Write size bytes from buffer into the packet
8483
size_t arduino::MbedUDP::write(const uint8_t *buffer, size_t size) {
85-
return _socket.sendto(_host, buffer, size);
84+
_socket.set_blocking(true);
85+
_socket.set_timeout(1000);
86+
nsapi_size_or_error_t ret = _socket.sendto(_host, buffer, size);
87+
_socket.set_blocking(false);
88+
_socket.set_timeout(0);
89+
if (ret < 0) {
90+
return 0;
91+
}
92+
return size;
8693
}
8794

8895
int arduino::MbedUDP::parsePacket() {

0 commit comments

Comments
 (0)