| #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> | |
| int WINAPI | |
| WspiapiClone (WORD wPort, struct addrinfo *ptResult) | |
| { | |
| struct addrinfo *p = NULL; | |
| struct addrinfo *n = NULL; | |
| for (p = ptResult; p != NULL;) | |
| { | |
| n = WspiapiNewAddrInfo (SOCK_DGRAM, p->ai_protocol, wPort, | |
| ((struct sockaddr_in *) p->ai_addr)->sin_addr.s_addr); | |
| if (!n) | |
| break; | |
| n->ai_next = p->ai_next; | |
| p->ai_next = n; | |
| p = n->ai_next; | |
| } | |
| if (p != NULL) | |
| return EAI_MEMORY; | |
| return 0; | |
| } |