#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; | |
} |