Make ipv4_to_str/ipv6_to_str safe to use.
GitOrigin-RevId: 622c8f03c8791545922d3ae5f596f0a9699b91a9
This commit is contained in:
parent
bf963ccadf
commit
54f9c77a20
@ -494,14 +494,14 @@ Status IPAddress::init_peer_address(const SocketFd &socket_fd) {
|
|||||||
return Status::OK();
|
return Status::OK();
|
||||||
}
|
}
|
||||||
|
|
||||||
CSlice IPAddress::ipv4_to_str(uint32 ipv4) {
|
string IPAddress::ipv4_to_str(uint32 ipv4) {
|
||||||
ipv4 = ntohl(ipv4);
|
ipv4 = ntohl(ipv4);
|
||||||
return ::td::get_ip_str(AF_INET, &ipv4);
|
return ::td::get_ip_str(AF_INET, &ipv4).str();
|
||||||
}
|
}
|
||||||
|
|
||||||
CSlice IPAddress::ipv6_to_str(Slice ipv6) {
|
string IPAddress::ipv6_to_str(Slice ipv6) {
|
||||||
CHECK(ipv6.size() == 16);
|
CHECK(ipv6.size() == 16);
|
||||||
return ::td::get_ip_str(AF_INET6, ipv6.ubegin());
|
return ::td::get_ip_str(AF_INET6, ipv6.ubegin()).str();
|
||||||
}
|
}
|
||||||
|
|
||||||
Slice IPAddress::get_ip_str() const {
|
Slice IPAddress::get_ip_str() const {
|
||||||
@ -599,10 +599,10 @@ StringBuilder &operator<<(StringBuilder &builder, const IPAddress &address) {
|
|||||||
if (!address.is_valid()) {
|
if (!address.is_valid()) {
|
||||||
return builder << "[invalid]";
|
return builder << "[invalid]";
|
||||||
}
|
}
|
||||||
if (address.get_address_family() == AF_INET) {
|
if (address.is_ipv4()) {
|
||||||
return builder << "[" << address.get_ip_str() << ":" << address.get_port() << "]";
|
return builder << "[" << address.get_ip_str() << ":" << address.get_port() << "]";
|
||||||
} else {
|
} else {
|
||||||
CHECK(address.get_address_family() == AF_INET6);
|
CHECK(address.is_ipv6());
|
||||||
return builder << "[[" << address.get_ip_str() << "]:" << address.get_port() << "]";
|
return builder << "[[" << address.get_ip_str() << "]:" << address.get_port() << "]";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,9 @@ class IPAddress {
|
|||||||
string get_ipv6() const;
|
string get_ipv6() const;
|
||||||
Slice get_ip_str() const;
|
Slice get_ip_str() const;
|
||||||
|
|
||||||
|
static string ipv4_to_str(uint32 ipv4);
|
||||||
|
static string ipv6_to_str(Slice ipv6);
|
||||||
|
|
||||||
IPAddress get_any_addr() const;
|
IPAddress get_any_addr() const;
|
||||||
|
|
||||||
static Result<IPAddress> get_ipv4_address(CSlice host);
|
static Result<IPAddress> get_ipv4_address(CSlice host);
|
||||||
@ -63,8 +66,6 @@ class IPAddress {
|
|||||||
const sockaddr *get_sockaddr() const;
|
const sockaddr *get_sockaddr() const;
|
||||||
size_t get_sockaddr_len() const;
|
size_t get_sockaddr_len() const;
|
||||||
int get_address_family() const;
|
int get_address_family() const;
|
||||||
static CSlice ipv4_to_str(uint32 ipv4);
|
|
||||||
static CSlice ipv6_to_str(Slice ipv6);
|
|
||||||
Status init_sockaddr(sockaddr *addr);
|
Status init_sockaddr(sockaddr *addr);
|
||||||
Status init_sockaddr(sockaddr *addr, socklen_t len) TD_WARN_UNUSED_RESULT;
|
Status init_sockaddr(sockaddr *addr, socklen_t len) TD_WARN_UNUSED_RESULT;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user