Skip to content

Commit e0978e4

Browse files
committed
fix:NetworkUDP - in parsePacket handle previous parsed packet
1 parent cd3d0bf commit e0978e4

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

libraries/Network/src/NetworkUdp.cpp

+5-9
Original file line numberDiff line numberDiff line change
@@ -292,18 +292,14 @@ void NetworkUDP::flush() {}
292292

293293
int NetworkUDP::parsePacket() {
294294
if (rx_buffer) {
295-
return 0;
295+
if (rx_buffer->full()) { // packet was not read yet
296+
return rx_buffer->available();
297+
}
298+
clear(); // discard the rest of the packet
296299
}
297300
struct sockaddr_storage si_other_storage; // enough storage for v4 and v6
298301
socklen_t slen = sizeof(sockaddr_storage);
299-
int len = 0;
300-
if (ioctl(udp_server, FIONREAD, &len) == -1) {
301-
log_e("could not check for data in buffer length: %d", errno);
302-
return 0;
303-
}
304-
if (!len) {
305-
return 0;
306-
}
302+
int len;
307303
char *buf = (char *)malloc(1460);
308304
if (!buf) {
309305
return 0;

0 commit comments

Comments
 (0)