From 9a4617fee3175fa6bf9eed10258042c92a261595 Mon Sep 17 00:00:00 2001 From: levlam Date: Wed, 14 Mar 2018 15:27:55 +0300 Subject: [PATCH] Add IPv6 DC addresses. GitOrigin-RevId: 03f79d00d679869d42c5557586e0af2a72b62a23 --- td/telegram/net/ConnectionCreator.cpp | 18 ++++++++++++++++-- tdutils/td/utils/port/IPAddress.cpp | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/td/telegram/net/ConnectionCreator.cpp b/td/telegram/net/ConnectionCreator.cpp index b3f5cb577..3805835ef 100644 --- a/td/telegram/net/ConnectionCreator.cpp +++ b/td/telegram/net/ConnectionCreator.cpp @@ -630,11 +630,15 @@ void ConnectionCreator::hangup() { DcOptions ConnectionCreator::get_default_dc_options(bool is_test) { DcOptions res; - auto add_ip_ports = [&res](int32 dc_id, const vector &ips, const vector &ports) { + auto add_ip_ports = [&res](int32 dc_id, const vector &ips, const vector &ports, bool is_ipv6 = false) { IPAddress ip_address; for (auto &ip : ips) { for (auto port : ports) { - ip_address.init_ipv4_port(ip, port).ensure(); + if (is_ipv6) { + ip_address.init_ipv6_port(ip, port).ensure(); + } else { + ip_address.init_ipv4_port(ip, port).ensure(); + } res.dc_options.emplace_back(DcId::internal(dc_id), ip_address); } } @@ -644,12 +648,22 @@ DcOptions ConnectionCreator::get_default_dc_options(bool is_test) { add_ip_ports(1, {"149.154.175.10"}, ports); add_ip_ports(2, {"149.154.167.40"}, ports); add_ip_ports(3, {"149.154.175.117"}, ports); + + add_ip_ports(1, {"2001:b28:f23d:f001::e"}, ports, true); + add_ip_ports(2, {"2001:67c:4e8:f002::e"}, ports, true); + add_ip_ports(3, {"2001:b28:f23d:f003::e"}, ports, true); } else { add_ip_ports(1, {"149.154.175.50"}, ports); add_ip_ports(2, {"149.154.167.51"}, ports); add_ip_ports(3, {"149.154.175.100"}, ports); add_ip_ports(4, {"149.154.167.91"}, ports); add_ip_ports(5, {"149.154.171.5"}, ports); + + add_ip_ports(1, {"2001:b28:f23d:f001::a"}, ports, true); + add_ip_ports(2, {"2001:67c:4e8:f002::a"}, ports, true); + add_ip_ports(3, {"2001:b28:f23d:f003::a"}, ports, true); + add_ip_ports(4, {"2001:67c:4e8:f004::a"}, ports, true); + add_ip_ports(5, {"2001:b28:f23f:f005::a"}, ports, true); } return res; } diff --git a/tdutils/td/utils/port/IPAddress.cpp b/tdutils/td/utils/port/IPAddress.cpp index 7995c99d3..2d3a3cdbc 100644 --- a/tdutils/td/utils/port/IPAddress.cpp +++ b/tdutils/td/utils/port/IPAddress.cpp @@ -148,7 +148,7 @@ Status IPAddress::init_host_port(CSlice host, CSlice port) { std::memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_INET; // TODO AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; - LOG(INFO) << "Try to init ipv4 address " << host << " with port " << port; + LOG(INFO) << "Try to init IP address of " << host << " with port " << port; auto s = getaddrinfo(host.c_str(), port.c_str(), &hints, &info); if (s != 0) { return Status::Error(PSLICE() << "getaddrinfo: " << gai_strerror(s));