--- a/src/Socket.cpp Thu Aug 04 02:13:22 2022 +0200
+++ b/src/Socket.cpp Thu Aug 04 22:49:17 2022 +0200
@@ -81,13 +81,20 @@
static in_addr_t getAddress(const std::string& host) {
+ struct addrinfo query;
+ memset(&query, sizeof (query), 0);
+ query.ai_family = AF_INET;
+ query.ai_socktype = SOCK_STREAM;
+ query.ai_protocol = IPPROTO_TCP;
+ query.ai_flags = AI_ALL;
+
struct addrinfo* addrInfo;
- check(getaddrinfo(host.c_str(), "", nullptr, &addrInfo), "getaddrinfo");
+ check(getaddrinfo(host.c_str(), "", &query, &addrInfo), "getaddrinfo");
std::cerr << "found: " << addrInfo << std::endl;
if (addrInfo) {
for (addrinfo* ai = addrInfo; ai; ai = ai->ai_next) {
- std::cerr << "address info: family=" << std::to_string(ai->ai_addr->sa_family);
+ std::cerr << "address info: family=" << std::to_string(ai->ai_addr->sa_family) << " socktype=" << std::to_string(ai->ai_socktype) << " protocol=" << std::to_string(ai->ai_protocol);
if (sockaddr_in * sa = castAddress<sockaddr_in>(ai, AF_INET)) std::cerr << " IPv4=" << ip2string(ai);
else if (sockaddr_in6 * sa = castAddress<sockaddr_in6>(ai, AF_INET6)) std::cerr << " IPv6=" << ip2string(ai);
std::cerr << std::endl;