From faaf2af43ba448454449f9aa3df240fd9af9e4d0 Mon Sep 17 00:00:00 2001 From: Jeffrey Ryan Date: Wed, 16 Nov 2022 15:53:15 -0600 Subject: p2p: fix exclusive node DNS resolution for certain hosts Fixes #8633. The function `append_net_address` did not parse hostname + port addresses (e.g. `bar:29080`) correctly if the hostname did not contain a `'.'` character. @vtnerd comments 1 clear up 2nd conditional statement --- src/net/parse.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/net/parse.h') diff --git a/src/net/parse.h b/src/net/parse.h index 648076d7b..6ece931c6 100644 --- a/src/net/parse.h +++ b/src/net/parse.h @@ -38,6 +38,16 @@ namespace net { + /*! + * \brief Takes a valid address string (IP, Tor, I2P, or DNS name) and splits it into host and port + * + * The host of an IPv6 addresses in the format "[x:x:..:x]:port" will have the braces stripped. + * For example, when the address is "[ffff::2023]", host will be set to "ffff::2023". + * + * \param address The address string one wants to split + * \param[out] host The host part of the address string. Is always set. + * \param[out] port The port part of the address string. Is only set when address string contains a port. + */ void get_network_address_host_and_port(const std::string& address, std::string& host, std::string& port); /*! -- cgit v1.2.3