|
@@ -1079,9 +1079,22 @@ string_is_valid_ipv6_address(const char *string)
|
|
|
int
|
|
|
string_is_valid_dest(const char *string)
|
|
|
{
|
|
|
- return string_is_valid_ipv4_address(string) ||
|
|
|
+ char *tmp = NULL;
|
|
|
+ int retval;
|
|
|
+
|
|
|
+ tor_assert(string);
|
|
|
+ tor_assert(strlen(string) > 0);
|
|
|
+
|
|
|
+ if (string[0] == '[' && string[strlen(string) - 1] == ']')
|
|
|
+ string = tmp = tor_strndup(string + 1, strlen(string) - 2);
|
|
|
+
|
|
|
+ retval = string_is_valid_ipv4_address(string) ||
|
|
|
string_is_valid_ipv6_address(string) ||
|
|
|
string_is_valid_hostname(string);
|
|
|
+
|
|
|
+ tor_free(tmp);
|
|
|
+
|
|
|
+ return retval;
|
|
|
}
|
|
|
|
|
|
/** Return true iff <b>string</b> matches a pattern of DNS names
|