From c758fd73ff0b95ca27f833f8aefd0345edd71fcc Mon Sep 17 00:00:00 2001
From: kwolekr <kwolekr@minetest.net>
Date: Wed, 8 Apr 2015 12:55:06 -0400
Subject: [PATCH] Link against shlwapi.lib and unify linker input sources for
 Windows

---
 src/CMakeLists.txt |  4 +++-
 src/socket.cpp     | 13 +++++--------
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 88ab995ba..13e900647 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -195,8 +195,10 @@ if(WIN32)
 		# Surpress some useless warnings
 		add_definitions ( /D "_CRT_SECURE_NO_DEPRECATE" /W1 )
 	else() # Probably MinGW = GCC
-		set(PLATFORM_LIBS ws2_32.lib)
+		set(PLATFORM_LIBS "")
 	endif()
+	set(PLATFORM_LIBS ws2_32.lib shlwapi.lib ${PLATFORM_LIBS})
+
 	# Zlib stuff
 	set(ZLIB_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/../../zlib/zlib-1.2.5"
 			CACHE PATH "Zlib include directory")
diff --git a/src/socket.cpp b/src/socket.cpp
index c3b5fc564..e82052f77 100644
--- a/src/socket.cpp
+++ b/src/socket.cpp
@@ -44,9 +44,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 	#include <windows.h>
 	#include <winsock2.h>
 	#include <ws2tcpip.h>
-	#ifdef _MSC_VER
-		#pragma comment(lib, "ws2_32.lib")
-	#endif
 typedef SOCKET socket_t;
 typedef int socklen_t;
 #else
@@ -154,7 +151,7 @@ void Address::Resolve(const char *name)
 
 	struct addrinfo *resolved, hints;
 	memset(&hints, 0, sizeof(hints));
-	
+
 	// Setup hints
 	hints.ai_socktype = 0;
 	hints.ai_protocol = 0;
@@ -168,7 +165,7 @@ void Address::Resolve(const char *name)
 	{
 		hints.ai_family = AF_INET;
 	}
-	
+
 	// Do getaddrinfo()
 	int e = getaddrinfo(name, NULL, &hints, &resolved);
 	if(e != 0)
@@ -514,7 +511,7 @@ int UDPSocket::Receive(Address & sender, void *data, int size)
 		dstream << (int) m_handle << " <- ";
 		sender.print(&dstream);
 		dstream << ", size=" << received;
-		
+
 		// Print packet contents
 		dstream << ", data=";
 		for(int i = 0; i < received && i < 20; i++) {
@@ -525,7 +522,7 @@ int UDPSocket::Receive(Address & sender, void *data, int size)
 		}
 		if(received > 20)
 			dstream << "...";
-		
+
 		dstream << std::endl;
 	}
 
@@ -586,7 +583,7 @@ bool UDPSocket::WaitData(int timeout_ms)
 		// No data
 		return false;
 	}
-	
+
 	// There is data
 	return true;
 }