summaryrefslogtreecommitdiff
path: root/core/io/ip.h
diff options
context:
space:
mode:
authorChuck <chuck+github@borboggle.com>2021-05-24 20:14:51 +0700
committerChuck <chuck+github@borboggle.com>2021-06-01 11:24:34 +0700
commitdd8fa11ac182cc5b53746c9148067968d45c5588 (patch)
tree91354ad635aae874047c7686d44b3008d2858a4c /core/io/ip.h
parent635d0c9b449e34267b52a237f7ce21838d90b6ce (diff)
Support multiple address resolution in DNS requests
Add two new functions to the IP class that returns all addresses/aliases associated with a given address. This is a cherry-pick merge from 010a3433df43a94fee95474360ffa6662c7441b9 which was merged in 2.1, and has been updated to build with the latest code. This merge adds two new methods IP.resolve_hostname_addresses and IP.get_resolve_item_addresses that returns a List of all addresses returned from the DNS request.
Diffstat (limited to 'core/io/ip.h')
-rw-r--r--core/io/ip.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/core/io/ip.h b/core/io/ip.h
index 0c4a83257d..3c6040a1f0 100644
--- a/core/io/ip.h
+++ b/core/io/ip.h
@@ -69,7 +69,6 @@ protected:
static IP *singleton;
static void _bind_methods();
- virtual IPAddress _resolve_hostname(const String &p_hostname, Type p_type = TYPE_ANY) = 0;
Array _get_local_addresses() const;
Array _get_local_interfaces() const;
@@ -84,11 +83,16 @@ public:
};
IPAddress resolve_hostname(const String &p_hostname, Type p_type = TYPE_ANY);
+ Array resolve_hostname_addresses(const String &p_hostname, Type p_type = TYPE_ANY);
// async resolver hostname
ResolverID resolve_hostname_queue_item(const String &p_hostname, Type p_type = TYPE_ANY);
ResolverStatus get_resolve_item_status(ResolverID p_id) const;
IPAddress get_resolve_item_address(ResolverID p_id) const;
virtual void get_local_addresses(List<IPAddress> *r_addresses) const;
+
+ virtual void _resolve_hostname(List<IPAddress> &r_addresses, const String &p_hostname, Type p_type = TYPE_ANY) const = 0;
+ Array get_resolve_item_addresses(ResolverID p_id) const;
+
virtual void get_local_interfaces(Map<String, Interface_Info> *r_interfaces) const = 0;
void erase_resolve_item(ResolverID p_id);