From dadca723490754668d2fbb5ad7e339490431646f Mon Sep 17 00:00:00 2001 From: hikerstk Date: Wed, 28 Aug 2013 06:52:11 +0000 Subject: [PATCH] Fixex VS compilation: need to link with Iphlpapi.lib, and apparently 'interface' is reserved (or #defined) in VS. git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/branches/hilnius@13583 178a84e3-b1eb-0310-8ba1-8eac791a3b58 --- CMakeLists.txt | 3 +++ src/network/protocols/get_public_address.cpp | 11 ++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index be121a4ec..7b7f1eac8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -236,6 +236,9 @@ if(APPLE) # CMake pick the library it wants essentially means I can't build. set_target_properties(supertuxkart PROPERTIES LINK_FLAGS "-arch i386 -F/Library/Frameworks -framework OpenAL -framework Ogg -framework Vorbis") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/Library/Frameworks/OpenAL.framework/Versions/A/Headers") +elseif(MSVC) + # We need to link with Iphlpapi.lib for some networking support: + target_link_libraries(supertuxkart "Iphlpapi.lib") endif() if(USE_FRIBIDI) diff --git a/src/network/protocols/get_public_address.cpp b/src/network/protocols/get_public_address.cpp index c7d72b6a1..c6549ef9a 100644 --- a/src/network/protocols/get_public_address.cpp +++ b/src/network/protocols/get_public_address.cpp @@ -28,7 +28,12 @@ #include "utils/random_generator.hpp" #include -#include +#ifdef WIN32 +# include +# include +#else +# include +#endif #include int stunRand() @@ -117,9 +122,9 @@ void GetPublicAddress::asynchronousUpdate() } for(p = res;p != NULL; p = p->ai_next) { - struct sockaddr_in* interface = (struct sockaddr_in*)(p->ai_addr); + struct sockaddr_in* current_interface = (struct sockaddr_in*)(p->ai_addr); - m_stun_server_ip = ntohl(interface->sin_addr.s_addr); + m_stun_server_ip = ntohl(current_interface->sin_addr.s_addr); NetworkManager::getInstance()->setManualSocketsMode(true); NetworkManager::getInstance()->getHost()->sendRawPacket(bytes, 20, TransportAddress(m_stun_server_ip, 3478)); m_state = TEST_SENT;