diff options
| author | Fabio Alessandrelli | 2016-10-28 20:35:31 +0200 |
|---|---|---|
| committer | Fabio Alessandrelli | 2016-10-30 17:46:05 +0100 |
| commit | 2f1c8592721eca1e6a71f419208f99977ceab2d9 (patch) | |
| tree | 1433c51da9158410c303c16473be08ebd24ba93a /core/io/stream_peer_tcp.cpp | |
| parent | 812908e236e83db368dfef49b8badb9a6182e1de (diff) | |
| download | godot-2f1c8592721eca1e6a71f419208f99977ceab2d9.tar.gz godot-2f1c8592721eca1e6a71f419208f99977ceab2d9.tar.zst godot-2f1c8592721eca1e6a71f419208f99977ceab2d9.zip | |
Add optional IP type param in TCP/UDP connect/set_send_address
Diffstat (limited to 'core/io/stream_peer_tcp.cpp')
| -rw-r--r-- | core/io/stream_peer_tcp.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/core/io/stream_peer_tcp.cpp b/core/io/stream_peer_tcp.cpp index fbb0c69cb..528f2e8ca 100644 --- a/core/io/stream_peer_tcp.cpp +++ b/core/io/stream_peer_tcp.cpp @@ -30,9 +30,26 @@ StreamPeerTCP* (*StreamPeerTCP::_create)()=NULL; +VARIANT_ENUM_CAST(IP_Address::AddrType); + +Error StreamPeerTCP::_connect(const String& p_address,int p_port,IP_Address::AddrType p_type) { + + IP_Address ip; + if (p_address.is_valid_ip_address()) { + ip=p_address; + } else { + ip=IP::get_singleton()->resolve_hostname(p_address, p_type); + if (ip==IP_Address()) + return ERR_CANT_RESOLVE; + } + + connect(ip,p_port); + return OK; +} + void StreamPeerTCP::_bind_methods() { - ObjectTypeDB::bind_method(_MD("connect","host","port"),&StreamPeerTCP::connect); + ObjectTypeDB::bind_method(_MD("connect","host","port","ip_type"),&StreamPeerTCP::_connect,DEFVAL(IP_Address::TYPE_ANY)); ObjectTypeDB::bind_method(_MD("is_connected"),&StreamPeerTCP::is_connected); ObjectTypeDB::bind_method(_MD("get_status"),&StreamPeerTCP::get_status); ObjectTypeDB::bind_method(_MD("get_connected_host"),&StreamPeerTCP::get_connected_host); |
