mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-15 00:44:19 +09:00
libwinpr-winsock: add inet_ntop for Windows XP portability
This commit is contained in:
@@ -22,14 +22,23 @@
|
||||
|
||||
#include <winpr/winpr.h>
|
||||
#include <winpr/wtypes.h>
|
||||
#include <winpr/windows.h>
|
||||
|
||||
#ifndef _WIN32
|
||||
#ifdef _WIN32
|
||||
|
||||
#if (_WIN32_WINNT < 0x0600)
|
||||
|
||||
PCSTR inet_ntop(INT Family, PVOID pAddr, PSTR pStringBuf, size_t StringBufSize);
|
||||
|
||||
#endif /* (_WIN32_WINNT < 0x0600) */
|
||||
|
||||
#else /* _WIN32 */
|
||||
|
||||
#include <sys/socket.h>
|
||||
|
||||
typedef struct sockaddr_storage SOCKADDR_STORAGE;
|
||||
|
||||
#endif
|
||||
#endif /* _WIN32 */
|
||||
|
||||
#endif /* WINPR_WINSOCK_H */
|
||||
|
||||
|
||||
@@ -83,11 +83,12 @@ typedef unsigned __int3264 ULONG_PTR;
|
||||
|
||||
typedef signed int LONG32;
|
||||
typedef signed __int64 LONG64;
|
||||
typedef const char* LPCSTR;
|
||||
|
||||
typedef CHAR* PSTR, *LPSTR;
|
||||
typedef const CHAR *LPCSTR,*PCSTR;
|
||||
|
||||
typedef WCHAR* LPWSTR, *PWSTR;
|
||||
typedef const WCHAR *LPCWSTR,*PCWSTR;
|
||||
typedef char* PSTR, *LPSTR;
|
||||
|
||||
typedef unsigned __int64 QWORD;
|
||||
typedef UCHAR* STRING;
|
||||
|
||||
@@ -208,8 +208,42 @@
|
||||
* WSCWriteProviderOrderEx
|
||||
*/
|
||||
|
||||
#ifndef _WIN32
|
||||
#ifdef _WIN32
|
||||
|
||||
#if (_WIN32_WINNT < 0x0600)
|
||||
|
||||
PCSTR inet_ntop(INT Family, PVOID pAddr, PSTR pStringBuf, size_t StringBufSize)
|
||||
{
|
||||
if (Family == AF_INET)
|
||||
{
|
||||
struct sockaddr_in in;
|
||||
|
||||
memset(&in, 0, sizeof(in));
|
||||
in.sin_family = AF_INET;
|
||||
memcpy(&in.sin_addr, pAddr, sizeof(struct in_addr));
|
||||
getnameinfo((struct sockaddr*) &in, sizeof(struct sockaddr_in), pStringBuf, StringBufSize, NULL, 0, NI_NUMERICHOST);
|
||||
|
||||
return pStringBuf;
|
||||
}
|
||||
else if (Family == AF_INET6)
|
||||
{
|
||||
struct sockaddr_in6 in;
|
||||
|
||||
memset(&in, 0, sizeof(in));
|
||||
in.sin6_family = AF_INET6;
|
||||
memcpy(&in.sin6_addr, pAddr, sizeof(struct in_addr6));
|
||||
getnameinfo((struct sockaddr*) &in, sizeof(struct sockaddr_in6), pStringBuf, StringBufSize, NULL, 0, NI_NUMERICHOST);
|
||||
|
||||
return pStringBuf;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#endif /* (_WIN32_WINNT < 0x0600) */
|
||||
|
||||
#else /* _WIN32 */
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
#endif /* _WIN32 */
|
||||
|
||||
Reference in New Issue
Block a user