(svn r15919) -Fix (r15916): mingw doesn't know getnameinfo() (unless you compile for XP SP2+). Also fix a MSVC warning.

This commit is contained in:
glx 2009-04-02 23:22:59 +00:00
parent beef5da970
commit 521bf687ee
2 changed files with 20 additions and 1 deletions

View File

@ -23,6 +23,25 @@
/* Windows has some different names for some types */
typedef SSIZE_T ssize_t;
typedef int socklen_t;
#else
#include "../../win32.h"
static inline int OTTDgetnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, DWORD hostlen, char *serv, DWORD servlen, int flags)
{
static int (WINAPI *getnameinfo)(const struct sockaddr *, socklen_t, char *, DWORD, char *, DWORD, int) = NULL;
static bool first_time = true;
if (first_time) {
LoadLibraryList((Function*)&getnameinfo, "ws2_32.dll\0getnameinfo\0\0");
first_time = false;
}
if (getnameinfo != NULL) return getnameinfo(sa, salen, host, hostlen, serv, servlen, flags);
strncpy(host, inet_ntoa(((struct sockaddr_in *)sa)->sin_addr), hostlen);
return 0;
}
#define getnameinfo OTTDgetnameinfo
#endif
#define GET_LAST_ERROR() WSAGetLastError()

View File

@ -101,7 +101,7 @@ struct ContentInfo {
/** Base socket handler for all Content TCP sockets */
class NetworkContentSocketHandler : public NetworkTCPSocketHandler {
protected:
struct NetworkAddress client_addr; ///< The address we're connected to.
NetworkAddress client_addr; ///< The address we're connected to.
virtual void Close();
/**