mirror of https://github.com/OpenTTD/OpenTTD
Codechange: Remove unnecessarily defined functions under MinGW
parent
2d981a4b2c
commit
fe8c24e081
|
@ -38,93 +38,7 @@ typedef unsigned long in_addr_t;
|
|||
typedef SSIZE_T ssize_t;
|
||||
typedef int socklen_t;
|
||||
# define IPPROTO_IPV6 41
|
||||
#else
|
||||
#include "../../os/windows/win32.h"
|
||||
#include "../../core/alloc_func.hpp"
|
||||
|
||||
#define AI_ADDRCONFIG 0x00000400 /* Resolution only if global address configured */
|
||||
#define IPV6_V6ONLY 27
|
||||
|
||||
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(((const struct sockaddr_in *)sa)->sin_addr), hostlen);
|
||||
return 0;
|
||||
}
|
||||
#define getnameinfo OTTDgetnameinfo
|
||||
|
||||
static inline int OTTDgetaddrinfo(const char *nodename, const char *servname, const struct addrinfo *hints, struct addrinfo **res)
|
||||
{
|
||||
static int (WINAPI *getaddrinfo)(const char *, const char *, const struct addrinfo *, struct addrinfo **) = NULL;
|
||||
static bool first_time = true;
|
||||
|
||||
if (first_time) {
|
||||
LoadLibraryList((Function*)&getaddrinfo, "ws2_32.dll\0getaddrinfo\0\0");
|
||||
first_time = false;
|
||||
}
|
||||
|
||||
if (getaddrinfo != NULL) return getaddrinfo(nodename, servname, hints, res);
|
||||
|
||||
*res = NULL;
|
||||
|
||||
in_addr_t ip = inet_addr(nodename);
|
||||
if (ip == INADDR_NONE) {
|
||||
struct hostent *he = gethostbyname(nodename);
|
||||
if (he == NULL) return EAI_NONAME;
|
||||
ip = (*(struct in_addr *)he->h_addr).s_addr;
|
||||
}
|
||||
|
||||
struct sockaddr_in *sin = CallocT<struct sockaddr_in>(1);
|
||||
sin->sin_family = AF_INET;
|
||||
sin->sin_port = htons(strtoul(servname, NULL, 10));
|
||||
sin->sin_addr.s_addr = ip;
|
||||
|
||||
struct addrinfo *ai = CallocT<struct addrinfo>(1);
|
||||
ai->ai_family = PF_INET;
|
||||
ai->ai_addr = (struct sockaddr*)sin;
|
||||
ai->ai_addrlen = sizeof(*sin);
|
||||
ai->ai_socktype = hints->ai_socktype;
|
||||
|
||||
*res = ai;
|
||||
return 0;
|
||||
}
|
||||
#define getaddrinfo OTTDgetaddrinfo
|
||||
|
||||
static inline void OTTDfreeaddrinfo(struct addrinfo *ai)
|
||||
{
|
||||
static int (WINAPI *freeaddrinfo)(struct addrinfo *) = NULL;
|
||||
static bool first_time = true;
|
||||
|
||||
if (ai == NULL) return;
|
||||
|
||||
if (first_time) {
|
||||
LoadLibraryList((Function*)&freeaddrinfo, "ws2_32.dll\0freeaddrinfo\0\0");
|
||||
first_time = false;
|
||||
}
|
||||
|
||||
if (freeaddrinfo != NULL) {
|
||||
freeaddrinfo(ai);
|
||||
return;
|
||||
}
|
||||
|
||||
do {
|
||||
struct addrinfo *next = ai->ai_next;
|
||||
free(ai->ai_addr);
|
||||
free(ai);
|
||||
ai = next;
|
||||
} while (ai != NULL);
|
||||
}
|
||||
#define freeaddrinfo OTTDfreeaddrinfo
|
||||
#endif /* __MINGW32__ && __CYGWIN__ */
|
||||
#endif /* !(__MINGW32__ && __CYGWIN__) */
|
||||
#endif /* _WIN32 */
|
||||
|
||||
/* UNIX stuff */
|
||||
|
|
|
@ -31,10 +31,7 @@
|
|||
#include <sys/stat.h>
|
||||
#include "../../language.h"
|
||||
|
||||
/* Due to TCHAR, strncat and strncpy have to remain (for a while). */
|
||||
#include "../../safeguards.h"
|
||||
#undef strncat
|
||||
#undef strncpy
|
||||
|
||||
static bool _has_console;
|
||||
static bool _cursor_disable = true;
|
||||
|
|
|
@ -636,7 +636,7 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP
|
|||
|
||||
switch (msg) {
|
||||
case WM_CREATE:
|
||||
SetTimer(hwnd, TID_POLLMOUSE, MOUSE_POLL_DELAY, (TIMERPROC)TrackMouseTimerProc);
|
||||
SetTimer(hwnd, TID_POLLMOUSE, MOUSE_POLL_DELAY, TrackMouseTimerProc);
|
||||
SetCompositionPos(hwnd);
|
||||
_imm_props = ImmGetProperty(GetKeyboardLayout(0), IGP_PROPERTY);
|
||||
break;
|
||||
|
@ -741,7 +741,7 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP
|
|||
|
||||
_pTrackMouseEvent(&tme);
|
||||
} else {
|
||||
SetTimer(hwnd, TID_POLLMOUSE, MOUSE_POLL_DELAY, (TIMERPROC)TrackMouseTimerProc);
|
||||
SetTimer(hwnd, TID_POLLMOUSE, MOUSE_POLL_DELAY, TrackMouseTimerProc);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue