add InetPton stub
This commit is contained in:
parent
3531419db4
commit
1150ab329b
40
src/win32shim.c
Normal file
40
src/win32shim.c
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
/* Custom InetPton implementation */
|
||||||
|
|
||||||
|
#include <Winsock2.h>
|
||||||
|
#include <ws2tcpip.h>
|
||||||
|
|
||||||
|
int __stdcall
|
||||||
|
InetPton(int Family,
|
||||||
|
const char *pszAddrString,
|
||||||
|
void *pAddrBuf)
|
||||||
|
{
|
||||||
|
IN_ADDR *addr = pAddrBuf;
|
||||||
|
unsigned long ulTmp;
|
||||||
|
|
||||||
|
if (Family != AF_INET) {
|
||||||
|
// Oops! We don't support that addr family
|
||||||
|
WSASetLastError(WSAEAFNOSUPPORT);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!pAddrBuf || !pszAddrString ||
|
||||||
|
pszAddrString[0] == '\0') {
|
||||||
|
WSASetLastError(WSAEFAULT);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Technically we could just put the return val directly
|
||||||
|
// into addr->S_un.S_addr, but I don't like writing bad
|
||||||
|
// data unless absolutely necessary. So store it in a temp
|
||||||
|
// variable, first.
|
||||||
|
ulTmp = inet_addr(pszAddrString);
|
||||||
|
if (ulTmp == INADDR_NONE) {
|
||||||
|
// Not an IP address
|
||||||
|
WSASetLastError(WSAEFAULT);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// S_un.S_addr is an unsigned long. Easy!
|
||||||
|
addr->S_un.S_addr = ulTmp;
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in a new issue