diff options
| author | Trond Abusdal | 2015-11-09 00:22:05 +0100 |
|---|---|---|
| committer | Trond Abusdal | 2015-11-09 00:22:05 +0100 |
| commit | f809cd44eabbf3f0a263cb625b60adeb8f6802f0 (patch) | |
| tree | 8ac2866b190dc8abb2708aa04b4130e9ac5ff486 | |
| parent | 3fcfdfec0ac5175f55527b3ec95d14d48bf29dd2 (diff) | |
| download | godot-f809cd44eabbf3f0a263cb625b60adeb8f6802f0.tar.gz godot-f809cd44eabbf3f0a263cb625b60adeb8f6802f0.tar.zst godot-f809cd44eabbf3f0a263cb625b60adeb8f6802f0.zip | |
Fixed PacketPeerUDP getting wrongly closed due to recvfrom using rb.data_left instead of rb.space_left.
| -rw-r--r-- | drivers/unix/packet_peer_udp_posix.cpp | 2 | ||||
| -rw-r--r-- | platform/windows/packet_peer_udp_winsock.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/unix/packet_peer_udp_posix.cpp b/drivers/unix/packet_peer_udp_posix.cpp index 94b4c3592..fd94f0e3b 100644 --- a/drivers/unix/packet_peer_udp_posix.cpp +++ b/drivers/unix/packet_peer_udp_posix.cpp @@ -121,7 +121,7 @@ Error PacketPeerUDPPosix::_poll(bool p_wait) { struct sockaddr_in from = {0}; socklen_t len = sizeof(struct sockaddr_in); int ret; - while ( (ret = recvfrom(sockfd, recv_buffer, MIN(sizeof(recv_buffer),rb.data_left()-12), p_wait?0:MSG_DONTWAIT, (struct sockaddr*)&from, &len)) > 0) { + while ( (ret = recvfrom(sockfd, recv_buffer, MIN(sizeof(recv_buffer),rb.space_left()-12), p_wait?0:MSG_DONTWAIT, (struct sockaddr*)&from, &len)) > 0) { rb.write((uint8_t*)&from.sin_addr, 4); uint32_t port = ntohs(from.sin_port); rb.write((uint8_t*)&port, 4); diff --git a/platform/windows/packet_peer_udp_winsock.cpp b/platform/windows/packet_peer_udp_winsock.cpp index aff92b8fc..34192e318 100644 --- a/platform/windows/packet_peer_udp_winsock.cpp +++ b/platform/windows/packet_peer_udp_winsock.cpp @@ -121,7 +121,7 @@ Error PacketPeerUDPWinsock::_poll(bool p_wait) { struct sockaddr_in from = {0}; int len = sizeof(struct sockaddr_in); int ret; - while ( (ret = recvfrom(sockfd, (char*)recv_buffer, MIN(sizeof(recv_buffer),rb.data_left()-12), 0, (struct sockaddr*)&from, &len)) > 0) { + while ( (ret = recvfrom(sockfd, (char*)recv_buffer, MIN(sizeof(recv_buffer),rb.space_left()-12), 0, (struct sockaddr*)&from, &len)) > 0) { rb.write((uint8_t*)&from.sin_addr, 4); uint32_t port = ntohs(from.sin_port); rb.write((uint8_t*)&port, 4); |
