32 lines
819 B
C
32 lines
819 B
C
#ifndef WIN32_LEAN_AND_MEAN
|
|
#define WIN32_LEAN_AND_MEAN
|
|
#endif
|
|
#undef __CRT__NO_INLINE
|
|
#define __CRT__NO_INLINE
|
|
#include <winsock2.h>
|
|
#include <wspiapi.h>
|
|
|
|
struct addrinfo * WINAPI
|
|
WspiapiNewAddrInfo (int iSocketType, int iProtocol, WORD wPort, DWORD dwAddress)
|
|
{
|
|
struct addrinfo *n;
|
|
struct sockaddr_in *pa;
|
|
|
|
if ((n = (struct addrinfo *) WspiapiMalloc (sizeof (struct addrinfo))) == NULL)
|
|
return NULL;
|
|
if ((pa = (struct sockaddr_in *) WspiapiMalloc (sizeof(struct sockaddr_in))) == NULL)
|
|
{
|
|
WspiapiFree(n);
|
|
return NULL;
|
|
}
|
|
pa->sin_family = AF_INET;
|
|
pa->sin_port = wPort;
|
|
pa->sin_addr.s_addr = dwAddress;
|
|
n->ai_family = PF_INET;
|
|
n->ai_socktype = iSocketType;
|
|
n->ai_protocol = iProtocol;
|
|
n->ai_addrlen = sizeof (struct sockaddr_in);
|
|
n->ai_addr = (struct sockaddr *) pa;
|
|
return n;
|
|
}
|