Jelajahi Sumber

IP_Address can now be a wildcard (not a valid IP, used for binding)

Fabio Alessandrelli 8 tahun lalu
induk
melakukan
4198291cd4
2 mengubah file dengan 8 tambahan dan 1 penghapusan
  1. 6 1
      core/io/ip_address.cpp
  2. 2 0
      core/io/ip_address.h

+ 6 - 1
core/io/ip_address.cpp

@@ -175,6 +175,7 @@ void IP_Address::clear() {
 
 	memset(&field8[0], 0, sizeof(field8));
 	valid = false;
+	wildcard = false;
 };
 
 bool IP_Address::is_ipv4() const{
@@ -208,7 +209,11 @@ IP_Address::IP_Address(const String& p_string) {
 
 	clear();
 
-	if (p_string.find(":") >= 0) {
+	if (p_string == "*") {
+		// Wildcard (not a vaild IP)
+		wildcard = true;
+
+	} else if (p_string.find(":") >= 0) {
 		// IPv6
 		_parse_ipv6(p_string);
 		valid = true;

+ 2 - 0
core/io/ip_address.h

@@ -42,6 +42,7 @@ private:
 	};
 
 	bool valid;
+	bool wildcard;
 
 protected:
 	void _parse_ipv6(const String& p_string);
@@ -67,6 +68,7 @@ public:
 	}
 
 	void clear();
+	bool is_wildcard() const {return wildcard;}
 	bool is_valid() const {return valid;}
 	bool is_ipv4() const;
 	const uint8_t *get_ipv4() const;