diff options
Diffstat (limited to 'core/io/packet_peer_udp.cpp')
| -rw-r--r-- | core/io/packet_peer_udp.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/core/io/packet_peer_udp.cpp b/core/io/packet_peer_udp.cpp index f30137094..83217ffc4 100644 --- a/core/io/packet_peer_udp.cpp +++ b/core/io/packet_peer_udp.cpp @@ -1,5 +1,5 @@ #include "packet_peer_udp.h" - +#include "io/ip.h" PacketPeerUDP* (*PacketPeerUDP::_create)()=NULL; @@ -15,17 +15,31 @@ String PacketPeerUDP::_get_packet_ip() const { return get_packet_address(); } +Error PacketPeerUDP::_set_send_address(const String& p_address,int p_port) { + + IP_Address ip; + if (p_address.is_valid_ip_address()) { + ip=p_address; + } else { + ip=IP::get_singleton()->resolve_hostname(p_address); + if (ip==IP_Address()) + return ERR_CANT_RESOLVE; + } + + set_send_address(ip,p_port); + return OK; +} void PacketPeerUDP::_bind_methods() { ObjectTypeDB::bind_method(_MD("listen:Error","port","recv_buf_size"),&PacketPeerUDP::listen,DEFVAL(65536)); ObjectTypeDB::bind_method(_MD("close"),&PacketPeerUDP::close); - ObjectTypeDB::bind_method(_MD("poll:Error"),&PacketPeerUDP::poll); + ObjectTypeDB::bind_method(_MD("wait:Error"),&PacketPeerUDP::wait); ObjectTypeDB::bind_method(_MD("is_listening"),&PacketPeerUDP::is_listening); ObjectTypeDB::bind_method(_MD("get_packet_ip"),&PacketPeerUDP::_get_packet_ip); ObjectTypeDB::bind_method(_MD("get_packet_address"),&PacketPeerUDP::_get_packet_address); ObjectTypeDB::bind_method(_MD("get_packet_port"),&PacketPeerUDP::get_packet_port); - ObjectTypeDB::bind_method(_MD("set_send_address","address","port"),&PacketPeerUDP::set_send_address); + ObjectTypeDB::bind_method(_MD("set_send_address","host","port"),&PacketPeerUDP::_set_send_address); } |
