aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabio Alessandrelli2017-01-18 10:48:50 +0100
committerFabio Alessandrelli2017-03-22 20:01:13 +0100
commitaeffe74a27fbe83f9f3da2672e2b62efe1255bf0 (patch)
tree8e949372e000d07026b5aeac2f12503f53cde29e
parentccf37c4ca2aabb212ef82bee7162401280f59e4d (diff)
downloadgodot-aeffe74a27fbe83f9f3da2672e2b62efe1255bf0.tar.gz
godot-aeffe74a27fbe83f9f3da2672e2b62efe1255bf0.tar.zst
godot-aeffe74a27fbe83f9f3da2672e2b62efe1255bf0.zip
Avoid calling close when polling a UDP peer without socket
(cherry picked from commit e4b9b37ccf8495be674bc15cf0bf9d76fe94e6be)
-rw-r--r--drivers/unix/packet_peer_udp_posix.cpp4
-rw-r--r--platform/windows/packet_peer_udp_winsock.cpp4
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/unix/packet_peer_udp_posix.cpp b/drivers/unix/packet_peer_udp_posix.cpp
index 04be55d6c..faabe902f 100644
--- a/drivers/unix/packet_peer_udp_posix.cpp
+++ b/drivers/unix/packet_peer_udp_posix.cpp
@@ -154,6 +154,10 @@ Error PacketPeerUDPPosix::wait() {
Error PacketPeerUDPPosix::_poll(bool p_wait) {
+ if (sockfd == -1) {
+ return FAILED;
+ }
+
struct sockaddr_storage from = { 0 };
socklen_t len = sizeof(struct sockaddr_storage);
int ret;
diff --git a/platform/windows/packet_peer_udp_winsock.cpp b/platform/windows/packet_peer_udp_winsock.cpp
index d8707709f..1dc23fcab 100644
--- a/platform/windows/packet_peer_udp_winsock.cpp
+++ b/platform/windows/packet_peer_udp_winsock.cpp
@@ -149,6 +149,10 @@ Error PacketPeerUDPWinsock::wait() {
}
Error PacketPeerUDPWinsock::_poll(bool p_wait) {
+ if (sockfd == -1) {
+ return FAILED;
+ }
+
_set_blocking(p_wait);
struct sockaddr_storage from = { 0 };