diff options
author | Florent Le Coz <louiz@louiz.org> | 2014-07-15 15:50:35 +0200 |
---|---|---|
committer | Florent Le Coz <louiz@louiz.org> | 2014-07-15 15:50:35 +0200 |
commit | 6a4e17cb0a2d48695af2af488068f98515d714a1 (patch) | |
tree | 7d8dc227436394b4d32fcd3e5102a355227878ae | |
parent | b578aebc039a38b9c9234af98ae106d78b48c450 (diff) | |
download | biboumi-6a4e17cb0a2d48695af2af488068f98515d714a1.tar.gz biboumi-6a4e17cb0a2d48695af2af488068f98515d714a1.tar.bz2 biboumi-6a4e17cb0a2d48695af2af488068f98515d714a1.tar.xz biboumi-6a4e17cb0a2d48695af2af488068f98515d714a1.zip |
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
-rw-r--r-- | src/network/socket_handler.cpp | 2 | ||||
-rw-r--r-- | src/network/socket_handler.hpp | 2 |
2 files changed, 2 insertions, 2 deletions
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<struct sockaddr*>(&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: |