From 705ab4d415005fc84a7e4232379a5d53a7a5e5aa Mon Sep 17 00:00:00 2001 From: levlam Date: Sat, 16 May 2020 17:30:16 +0300 Subject: [PATCH] Supoort bracketed IPv6 in init_ipv6_port. GitOrigin-RevId: 5452157d85fa5628a07e82fec20c92e8b0836508 --- tdutils/td/utils/port/IPAddress.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tdutils/td/utils/port/IPAddress.cpp b/tdutils/td/utils/port/IPAddress.cpp index 1481faa23..d7bca42cb 100644 --- a/tdutils/td/utils/port/IPAddress.cpp +++ b/tdutils/td/utils/port/IPAddress.cpp @@ -310,6 +310,11 @@ Status IPAddress::init_ipv6_port(CSlice ipv6, int port) { if (port <= 0 || port >= (1 << 16)) { return Status::Error(PSLICE() << "Invalid [port=" << port << "]"); } + string ipv6_plain; + if (ipv6.size() > 2 && ipv6[0] == '[' && ipv6.back() == ']') { + ipv6_plain.assign(ipv6.begin() + 1, ipv6.size() - 2); + ipv6 = ipv6_plain; + } std::memset(&ipv6_addr_, 0, sizeof(ipv6_addr_)); ipv6_addr_.sin6_family = AF_INET6; ipv6_addr_.sin6_port = htons(static_cast(port));