From fd96a6722dc86a1e5e0f548db5da9cbe64d0c187 Mon Sep 17 00:00:00 2001 From: levlam Date: Tue, 11 Sep 2018 21:49:39 +0300 Subject: [PATCH] Add get_ipv4 test. GitOrigin-RevId: fe8d79634d3d4e5114cc8b03b0a38d988923c2ba --- td/telegram/net/DcOptions.h | 4 ++-- tdutils/td/utils/port/IPAddress.cpp | 6 +++--- tdutils/td/utils/port/IPAddress.h | 2 +- tdutils/test/misc.cpp | 15 +++++++++++++++ 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/td/telegram/net/DcOptions.h b/td/telegram/net/DcOptions.h index aac0fc474..a734741d0 100644 --- a/td/telegram/net/DcOptions.h +++ b/td/telegram/net/DcOptions.h @@ -81,7 +81,7 @@ class DcOption { switch (ip_port_ref.get_id()) { case telegram_api::ipPort::ID: { auto &ip_port = static_cast(ip_port_ref); - init_ip_address(IPAddress::ipv4_to_str(ip_port.ipv4_), ip_port.port_); + init_ip_address(IPAddress::ipv4_to_str(static_cast(ip_port.ipv4_)), ip_port.port_); break; } case telegram_api::ipPortSecret::ID: { @@ -91,7 +91,7 @@ class DcOption { } flags_ |= Flags::HasSecret; secret_ = ip_port.secret_.as_slice().str(); - init_ip_address(IPAddress::ipv4_to_str(ip_port.ipv4_), ip_port.port_); + init_ip_address(IPAddress::ipv4_to_str(static_cast(ip_port.ipv4_)), ip_port.port_); break; } default: diff --git a/tdutils/td/utils/port/IPAddress.cpp b/tdutils/td/utils/port/IPAddress.cpp index dc641ec99..85707c9e2 100644 --- a/tdutils/td/utils/port/IPAddress.cpp +++ b/tdutils/td/utils/port/IPAddress.cpp @@ -424,9 +424,9 @@ static CSlice get_ip_str(int family, const void *addr) { } } -CSlice IPAddress::ipv4_to_str(int32 ipv4) { - auto tmp_ipv4 = ntohl(ipv4); - return ::td::get_ip_str(AF_INET, &tmp_ipv4); +CSlice IPAddress::ipv4_to_str(uint32 ipv4) { + ipv4 = ntohl(ipv4); + return ::td::get_ip_str(AF_INET, &ipv4); } Slice IPAddress::get_ip_str() const { diff --git a/tdutils/td/utils/port/IPAddress.h b/tdutils/td/utils/port/IPAddress.h index 39b4015a2..a5a88e109 100644 --- a/tdutils/td/utils/port/IPAddress.h +++ b/tdutils/td/utils/port/IPAddress.h @@ -57,7 +57,7 @@ class IPAddress { const sockaddr *get_sockaddr() const; size_t get_sockaddr_len() const; int get_address_family() const; - static CSlice ipv4_to_str(int32 ipv4); + static CSlice ipv4_to_str(uint32 ipv4); Status init_sockaddr(sockaddr *addr); Status init_sockaddr(sockaddr *addr, socklen_t len) TD_WARN_UNUSED_RESULT; diff --git a/tdutils/test/misc.cpp b/tdutils/test/misc.cpp index 84cbf9529..50525c765 100644 --- a/tdutils/test/misc.cpp +++ b/tdutils/test/misc.cpp @@ -435,3 +435,18 @@ TEST(BigNum, from_decimal) { ASSERT_TRUE(BigNum::from_decimal("-999999999999999999999999999999999999999999999999").is_ok()); ASSERT_TRUE(BigNum::from_decimal("999999999999999999999999999999999999999999999999").is_ok()); } + +static void test_get_ipv4(uint32 ip) { + td::IPAddress ip_address; + ip_address.init_ipv4_port(td::IPAddress::ipv4_to_str(ip), 80); + ASSERT_EQ(ip_address.get_ipv4(), ip); +} + +TEST(Misc, IPAddress_get_ipv4) { + test_get_ipv4(0x00000000); + test_get_ipv4(0x010000FF); + test_get_ipv4(0xFF000001); + test_get_ipv4(0x01020304); + test_get_ipv4(0x04030201); + test_get_ipv4(0xFFFFFFFF); +}