From 6a4e17cb0a2d48695af2af488068f98515d714a1 Mon Sep 17 00:00:00 2001 From: Florent Le Coz Date: Tue, 15 Jul 2014 15:50:35 +0200 Subject: Fix IPv6 support (sockaddr size) Since struct sockaddr is too small to contain an IPv6, we use struct sockaddr_in6 instead, and we cast it where needed --- src/network/socket_handler.cpp | 2 +- src/network/socket_handler.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/network') diff --git a/src/network/socket_handler.cpp b/src/network/socket_handler.cpp index 52297e4..73e1ad1 100644 --- a/src/network/socket_handler.cpp +++ b/src/network/socket_handler.cpp @@ -140,7 +140,7 @@ void SocketHandler::connect(const std::string& address, const std::string& port, this->ai_addrlen = rp->ai_addrlen; memcpy(&this->ai_addr, rp->ai_addr, this->ai_addrlen); memcpy(&this->addrinfo, rp, sizeof(struct addrinfo)); - this->addrinfo.ai_addr = &this->ai_addr; + this->addrinfo.ai_addr = reinterpret_cast(&this->ai_addr); this->addrinfo.ai_next = nullptr; // If the connection has not succeeded or failed in 5s, we consider // it to have failed diff --git a/src/network/socket_handler.hpp b/src/network/socket_handler.hpp index b4cb6f2..061658e 100644 --- a/src/network/socket_handler.hpp +++ b/src/network/socket_handler.hpp @@ -199,7 +199,7 @@ private: * again. */ struct addrinfo addrinfo; - struct sockaddr ai_addr; + struct sockaddr_in6 ai_addr; socklen_t ai_addrlen; protected: -- cgit v1.2.3