Unverified Commit 5b3765f0 authored by Igor [hyperxor]'s avatar Igor [hyperxor] Committed by GitHub

Set addrinfo to zero and clang format for net.cc (#723)

parent 41b8022f
...@@ -24,9 +24,9 @@ IP GetIPv4(const std::string &host) { ...@@ -24,9 +24,9 @@ IP GetIPv4(const std::string &host) {
in_addr addr; in_addr addr;
int res = inet_pton(AF_INET, host.c_str(), &addr); int res = inet_pton(AF_INET, host.c_str(), &addr);
if (res == 0) { if (res == 0) {
throw std::invalid_argument("Invalid IPv4 network address"); throw std::invalid_argument("Invalid IPv4 network address");
} else if (res < 0) { } else if (res < 0) {
throw std::invalid_argument(strerror(errno)); throw std::invalid_argument(strerror(errno));
} else { } else {
struct sockaddr_in s_addr = {0}; struct sockaddr_in s_addr = {0};
s_addr.sin_family = AF_INET; s_addr.sin_family = AF_INET;
...@@ -42,18 +42,18 @@ IP GetIPv6(const std::string &host) { ...@@ -42,18 +42,18 @@ IP GetIPv6(const std::string &host) {
in6_addr addr6; in6_addr addr6;
int res = inet_pton(AF_INET6, host.c_str(), &(addr6.s6_addr16)); int res = inet_pton(AF_INET6, host.c_str(), &(addr6.s6_addr16));
if (res == 0) { if (res == 0) {
throw std::invalid_argument("Invalid IPv6 network address"); throw std::invalid_argument("Invalid IPv6 network address");
} else if (res < 0) { } else if (res < 0) {
throw std::invalid_argument(strerror(errno)); throw std::invalid_argument(strerror(errno));
} else { } else {
struct sockaddr_in6 s_addr = {0}; struct sockaddr_in6 s_addr = {0};
s_addr.sin6_family = AF_INET6; s_addr.sin6_family = AF_INET6;
static_assert(sizeof(s_addr.sin6_addr.s6_addr16) >= 8 * sizeof(uint16_t)); static_assert(sizeof(s_addr.sin6_addr.s6_addr16) >= 8 * sizeof(uint16_t));
memcpy(&(s_addr.sin6_addr.s6_addr16), &addr6.s6_addr16, memcpy(&(s_addr.sin6_addr.s6_addr16), &addr6.s6_addr16,
8 * sizeof(uint16_t)); 8 * sizeof(uint16_t));
return IP(reinterpret_cast<struct sockaddr *>(&s_addr)); return IP(reinterpret_cast<struct sockaddr *>(&s_addr));
} }
} }
} // namespace } // namespace
...@@ -297,11 +297,12 @@ void Address::init(const std::string &addr) { ...@@ -297,11 +297,12 @@ void Address::init(const std::string &addr) {
struct hostent *hp = ::gethostbyname(host_.c_str()); struct hostent *hp = ::gethostbyname(host_.c_str());
if (hp) { if (hp) {
char **addr = hp->h_addr_list; char **addr = hp->h_addr_list;
while (*addr) { while (*addr) {
host_ = std::string(inet_ntoa(*reinterpret_cast<struct in_addr *>(*addr))); host_ =
break; std::string(inet_ntoa(*reinterpret_cast<struct in_addr *>(*addr)));
} break;
}
} }
ip_ = GetIPv4(host_); ip_ = GetIPv4(host_);
......
...@@ -133,6 +133,7 @@ void Listener::bind(const Address &address) { ...@@ -133,6 +133,7 @@ void Listener::bind(const Address &address) {
addr_ = address; addr_ = address;
struct addrinfo hints; struct addrinfo hints;
memset(&hints, 0, sizeof(struct addrinfo));
hints.ai_family = address.family(); hints.ai_family = address.family();
hints.ai_socktype = SOCK_STREAM; hints.ai_socktype = SOCK_STREAM;
hints.ai_flags = AI_PASSIVE; hints.ai_flags = AI_PASSIVE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment