Make IPAddress::get_ipv6 safe to use.

GitOrigin-RevId: 47d50318abac4231efe63820902ba4d74b6dd03d
This commit is contained in:
levlam 2020-05-16 16:11:03 +03:00
parent fee023c29f
commit bf963ccadf
3 changed files with 4 additions and 4 deletions

View File

@ -110,7 +110,7 @@ void Socks5::send_ip_address() {
request += static_cast<char>((ipv4 >> 24) & 255);
} else {
request += '\x04';
request += ip_address_.get_ipv6().str();
request += ip_address_.get_ipv6();
}
auto port = ip_address_.get_port();
request += static_cast<char>((port >> 8) & 255);

View File

@ -267,11 +267,11 @@ uint32 IPAddress::get_ipv4() const {
return htonl(ipv4_addr_.sin_addr.s_addr);
}
Slice IPAddress::get_ipv6() const {
string IPAddress::get_ipv6() const {
static_assert(sizeof(ipv6_addr_.sin6_addr) == 16, "ipv6 size == 16");
CHECK(is_valid());
CHECK(!is_ipv4());
return Slice(ipv6_addr_.sin6_addr.s6_addr, 16);
return Slice(ipv6_addr_.sin6_addr.s6_addr, 16).str();
}
IPAddress IPAddress::get_any_addr() const {

View File

@ -39,7 +39,7 @@ class IPAddress {
void set_port(int port);
uint32 get_ipv4() const;
Slice get_ipv6() const;
string get_ipv6() const;
Slice get_ip_str() const;
IPAddress get_any_addr() const;