From 9f0f6dc56e44b04c6a28313bd18c4fa7142143d3 Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 17 Dec 2018 22:09:01 +0300 Subject: [PATCH] Fix IPAddress::get_any_addr. GitOrigin-RevId: cd2c6ca22d6ecc1cbb834b15e9aa191302885e52 --- tdutils/td/utils/port/IPAddress.cpp | 2 ++ tdutils/td/utils/port/SocketFd.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tdutils/td/utils/port/IPAddress.cpp b/tdutils/td/utils/port/IPAddress.cpp index 6c147fd8..486e88d7 100644 --- a/tdutils/td/utils/port/IPAddress.cpp +++ b/tdutils/td/utils/port/IPAddress.cpp @@ -290,6 +290,7 @@ IPAddress IPAddress::get_any_addr() const { void IPAddress::init_ipv4_any() { is_valid_ = true; + std::memset(&ipv4_addr_, 0, sizeof(ipv4_addr_)); ipv4_addr_.sin_family = AF_INET; ipv4_addr_.sin_addr.s_addr = INADDR_ANY; ipv4_addr_.sin_port = 0; @@ -297,6 +298,7 @@ void IPAddress::init_ipv4_any() { void IPAddress::init_ipv6_any() { is_valid_ = true; + std::memset(&ipv6_addr_, 0, sizeof(ipv6_addr_)); ipv6_addr_.sin6_family = AF_INET6; ipv6_addr_.sin6_addr = in6addr_any; ipv6_addr_.sin6_port = 0; diff --git a/tdutils/td/utils/port/SocketFd.cpp b/tdutils/td/utils/port/SocketFd.cpp index 2b768f1e..38895875 100644 --- a/tdutils/td/utils/port/SocketFd.cpp +++ b/tdutils/td/utils/port/SocketFd.cpp @@ -510,7 +510,7 @@ Result SocketFd::from_native_fd(NativeFd fd) { } Result SocketFd::open(const IPAddress &address) { - NativeFd native_fd{socket(address.get_address_family(), SOCK_STREAM, 0)}; + NativeFd native_fd{socket(address.get_address_family(), SOCK_STREAM, IPPROTO_TCP)}; if (!native_fd) { return OS_SOCKET_ERROR("Failed to create a socket"); }