Переглянути джерело

Avoid calling close when polling a UDP peer without socket

(cherry picked from commit e4b9b37ccf8495be674bc15cf0bf9d76fe94e6be)
Fabio Alessandrelli 8 роки тому
батько
коміт
aeffe74a27

+ 4 - 0
drivers/unix/packet_peer_udp_posix.cpp

@@ -154,6 +154,10 @@ Error PacketPeerUDPPosix::wait() {
 
 
 Error PacketPeerUDPPosix::_poll(bool p_wait) {
 Error PacketPeerUDPPosix::_poll(bool p_wait) {
 
 
+	if (sockfd == -1) {
+		return FAILED;
+	}
+
 	struct sockaddr_storage from = { 0 };
 	struct sockaddr_storage from = { 0 };
 	socklen_t len = sizeof(struct sockaddr_storage);
 	socklen_t len = sizeof(struct sockaddr_storage);
 	int ret;
 	int ret;

+ 4 - 0
platform/windows/packet_peer_udp_winsock.cpp

@@ -149,6 +149,10 @@ Error PacketPeerUDPWinsock::wait() {
 }
 }
 Error PacketPeerUDPWinsock::_poll(bool p_wait) {
 Error PacketPeerUDPWinsock::_poll(bool p_wait) {
 
 
+	if (sockfd == -1) {
+		return FAILED;
+	}
+
 	_set_blocking(p_wait);
 	_set_blocking(p_wait);
 
 
 	struct sockaddr_storage from = { 0 };
 	struct sockaddr_storage from = { 0 };