diff options
author | Martin Nagy <mnagy@redhat.com> | 2009-02-11 20:37:59 +0100 |
---|---|---|
committer | Martin Nagy <mnagy@redhat.com> | 2009-02-11 20:37:59 +0100 |
commit | f50ae72ec3417cae55dd4e085991c01af9fdc5f1 (patch) | |
tree | 0e36c9a3320f6d068df93d3ff6d84b821d23db40 /contrib/idn/idnkit-1.0-src/wsock/wsock20 | |
download | bind_dynamic-f50ae72ec3417cae55dd4e085991c01af9fdc5f1.tar.gz bind_dynamic-f50ae72ec3417cae55dd4e085991c01af9fdc5f1.tar.xz bind_dynamic-f50ae72ec3417cae55dd4e085991c01af9fdc5f1.zip |
Initial commitstart
Diffstat (limited to 'contrib/idn/idnkit-1.0-src/wsock/wsock20')
-rw-r--r-- | contrib/idn/idnkit-1.0-src/wsock/wsock20/dlldef.h | 123 | ||||
-rw-r--r-- | contrib/idn/idnkit-1.0-src/wsock/wsock20/dllfunc.c | 592 | ||||
-rw-r--r-- | contrib/idn/idnkit-1.0-src/wsock/wsock20/dllload.c | 62 | ||||
-rw-r--r-- | contrib/idn/idnkit-1.0-src/wsock/wsock20/dllmain.c | 94 | ||||
-rw-r--r-- | contrib/idn/idnkit-1.0-src/wsock/wsock20/dllstub.c | 2168 | ||||
-rw-r--r-- | contrib/idn/idnkit-1.0-src/wsock/wsock20/make.wnt | 97 | ||||
-rw-r--r-- | contrib/idn/idnkit-1.0-src/wsock/wsock20/ws2_32.def | 120 |
7 files changed, 3256 insertions, 0 deletions
diff --git a/contrib/idn/idnkit-1.0-src/wsock/wsock20/dlldef.h b/contrib/idn/idnkit-1.0-src/wsock/wsock20/dlldef.h new file mode 100644 index 0000000..52a2567 --- /dev/null +++ b/contrib/idn/idnkit-1.0-src/wsock/wsock20/dlldef.h @@ -0,0 +1,123 @@ +/* + * dlldef.h + */ + +/* + * Copyright (c) 2000 Japan Network Information Center. All rights reserved. + * + * By using this file, you agree to the terms and conditions set forth bellow. + * + * LICENSE TERMS AND CONDITIONS + * + * The following License Terms and Conditions apply, unless a different + * license is obtained from Japan Network Information Center ("JPNIC"), + * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, + * Chiyoda-ku, Tokyo 101-0047, Japan. + * + * 1. Use, Modification and Redistribution (including distribution of any + * modified or derived work) in source and/or binary forms is permitted + * under this License Terms and Conditions. + * + * 2. Redistribution of source code must retain the copyright notices as they + * appear in each source code file, this License Terms and Conditions. + * + * 3. Redistribution in binary form must reproduce the Copyright Notice, + * this License Terms and Conditions, in the documentation and/or other + * materials provided with the distribution. For the purposes of binary + * distribution the "Copyright Notice" refers to the following language: + * "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved." + * + * 4. The name of JPNIC may not be used to endorse or promote products + * derived from this Software without specific prior written approval of + * JPNIC. + * + * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + */ + +#ifndef _DLLDEF_H +#define _DLLDEF_H + +#include "../common/wrapcommon.h" + +/* + * Execution Tracing + */ + +extern int procPid; + +#ifdef DEBUG +#define TRACE idnPrintf +#define FATAL idnPrintf +#else +#define TRACE +#define FATAL idnPrintf +#endif + +/* + * entry points to wrap + */ + +extern int WSAAPI +_org_gethostname(char FAR * name, int namelen); + +extern struct hostent FAR * WSAAPI +_org_gethostbyaddr(const char FAR * addr, int len, int type); + +extern struct hostent FAR * WSAAPI +_org_gethostbyname(const char FAR * name); + +extern HANDLE WSAAPI +_org_WSAAsyncGetHostByName(HWND hWnd, u_int wMsg, const char FAR * name, + char FAR * buf,int buflen); + +extern HANDLE WSAAPI +_org_WSAAsyncGetHostByAddr(HWND hWnd, u_int wMsg, const char FAR * addr, + int len, int type, char FAR * buf, int buflen); + +extern INT WSAAPI +_org_WSALookupServiceBeginA(LPWSAQUERYSETA lpqsRestrictions, + DWORD dwControlFlags, + LPHANDLE lphLookup); + +extern INT WSAAPI +_org_WSALookupServiceBeginW(LPWSAQUERYSETW lpqsRestrictions, + DWORD dwControlFlags, + LPHANDLE lphLookup); + +extern INT WSAAPI +_org_WSALookupServiceNextA(HANDLE hLookup, + DWORD dwControlFlags, + LPDWORD lpdwBufferLength, + LPWSAQUERYSETA lpqsResults); + +extern INT WSAAPI +_org_WSALookupServiceNextW(HANDLE hLookup, + DWORD dwControlFlags, + LPDWORD lpdwBufferLength, + LPWSAQUERYSETW lpqsResults); + +extern INT WSAAPI +_org_WSALookupServiceEnd(HANDLE hLookup); + +extern int WSAAPI +_org_getaddrinfo(const char *nodename, const char *servname, + LPVOID hints, LPVOID res); + +extern void WSAAPI +_org_freeaddrinfo(LPVOID aip); + +extern int WSAAPI +_org_getnameinfo(LPVOID sa, DWORD salen, char* host, DWORD hostlen, + char* serv, DWORD servlen, int flags); + +#endif /* _DLLDEF_H */ diff --git a/contrib/idn/idnkit-1.0-src/wsock/wsock20/dllfunc.c b/contrib/idn/idnkit-1.0-src/wsock/wsock20/dllfunc.c new file mode 100644 index 0000000..cec2d06 --- /dev/null +++ b/contrib/idn/idnkit-1.0-src/wsock/wsock20/dllfunc.c @@ -0,0 +1,592 @@ +/* + * dllfunc.c - wrapper functions + */ + +/* + * Copyright (c) 2000,2002 Japan Network Information Center. + * All rights reserved. + * + * By using this file, you agree to the terms and conditions set forth bellow. + * + * LICENSE TERMS AND CONDITIONS + * + * The following License Terms and Conditions apply, unless a different + * license is obtained from Japan Network Information Center ("JPNIC"), + * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, + * Chiyoda-ku, Tokyo 101-0047, Japan. + * + * 1. Use, Modification and Redistribution (including distribution of any + * modified or derived work) in source and/or binary forms is permitted + * under this License Terms and Conditions. + * + * 2. Redistribution of source code must retain the copyright notices as they + * appear in each source code file, this License Terms and Conditions. + * + * 3. Redistribution in binary form must reproduce the Copyright Notice, + * this License Terms and Conditions, in the documentation and/or other + * materials provided with the distribution. For the purposes of binary + * distribution the "Copyright Notice" refers to the following language: + * "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved." + * + * 4. The name of JPNIC may not be used to endorse or promote products + * derived from this Software without specific prior written approval of + * JPNIC. + * + * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + */ + +#include <windows.h> +#include <svcguid.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <process.h> + +#include "dlldef.h" + +#ifndef EAI_MEMORY +#define EAI_MEMORY WSA_NOT_ENOUGH_MEMORY +#endif +#ifndef EAI_FAIL +#define EAI_FAIL WSANO_RECOVERY +#endif + +static GUID guid_habn = SVCID_INET_HOSTADDRBYNAME; +static GUID guid_habis = SVCID_INET_HOSTADDRBYINETSTRING; + +#define SVCID_IS_HABN(p) (memcmp(p, &guid_habn, sizeof(GUID)) == 0) +#define SVCID_IS_HABIS(p) (memcmp(p, &guid_habis, sizeof(GUID)) == 0) + +/* + * Rename addrinfo to my_addrinfo for avoiding possible name conflict. + */ +struct my_addrinfo { + int ai_flags; + int ai_family; + int ai_socktype; + int ai_protocol; + size_t ai_addrlen; + char *ai_canonname; + struct sockaddr *ai_addr; + struct my_addrinfo *ai_next; +}; + +typedef struct obj_lock { + void *key; + struct obj_lock *next; +} obj_lock_t; + +#define OBJLOCKHASH_SIZE 127 +static obj_lock_t *obj_lock_hash[OBJLOCKHASH_SIZE]; + +static int obj_hash(void *key); +static int obj_islocked(void *key); +static void obj_lock(void *key); +static void obj_unlock(void *key); +static char *decode_name_dynamic(const char *name, idn_resconf_t idnctx); +static struct my_addrinfo + *copy_decode_addrinfo_dynamic(struct my_addrinfo *aip, + idn_resconf_t idnctx); +static void free_copied_addrinfo(struct my_addrinfo *aip); + +WRAPPER_EXPORT int WSAAPI +gethostname(char FAR * name, int namelen) { + int ret; + + TRACE("ENTER gethostname\n"); + ret = _org_gethostname(name, namelen); + TRACE("LEAVE gethostname %d <%-.100s>\n", ret, name); + + return (ret); +} + +WRAPPER_EXPORT struct hostent FAR * WSAAPI +gethostbyname(const char FAR * name) { + struct hostent FAR *ret; + char nbuff[256]; + char hbuff[256]; + BOOL stat; + idn_resconf_t encodeCtx; + + TRACE("ENTER gethostbyname <%-.100s>\n", + (name != NULL ? name : "NULL")); + + encodeCtx = idnGetContext(); + + if (encodeCtx == NULL || name == NULL) { + ret = _org_gethostbyname(name); + } else { + stat = idnConvReq(encodeCtx, name, nbuff, sizeof(nbuff)); + if (stat == FALSE) { + TRACE("idnConvReq failed\n"); + ret = NULL; + } else { + TRACE("Converted Name <%s>\n", + dumpName(nbuff, hbuff, sizeof(hbuff))); + ret = _org_gethostbyname(nbuff); + } + } + + if (ret != NULL && encodeCtx != NULL) { + TRACE("Resulting Name <%s>\n", + dumpName(ret->h_name, hbuff, sizeof(hbuff))); + stat = idnConvRsp(encodeCtx, ret->h_name, + nbuff, sizeof(nbuff)); + if (stat == FALSE) { + TRACE("Decoding failed - return the name verbatim\n"); + } else { + TRACE("Converted Back <%s>\n", + dumpName(nbuff, hbuff, sizeof(hbuff))); + strcpy(ret->h_name, nbuff); + } + } + + if (ret == NULL) { + TRACE("LEAVE gethostbyname NULL\n"); + } else { + TRACE("LEAVE gethostbyname <%s>\n", + dumpHost(ret, hbuff, sizeof(hbuff))); + } + return (ret); +} + +WRAPPER_EXPORT struct hostent FAR * WSAAPI +gethostbyaddr(const char FAR * addr, int len, int type) { + struct hostent FAR *ret; + char nbuff[256]; + char abuff[256]; + char hbuff[256]; + BOOL stat; + idn_resconf_t encodeCtx; + + TRACE("ENTER gethostbyaddr <%s>\n", + dumpAddr(addr, len, abuff, sizeof(abuff))); + + encodeCtx = idnGetContext(); + + ret = _org_gethostbyaddr(addr, len, type); + + if (ret != NULL && encodeCtx != NULL) { + TRACE("Resulting Name <%s>\n", + dumpName(ret->h_name, hbuff, sizeof(hbuff))); + stat = idnConvRsp(encodeCtx, ret->h_name, + nbuff, sizeof(nbuff)); + if (stat == FALSE) { + TRACE("Decoding failed - return the name verbatim\n"); + } else { + TRACE("Converted Back <%s>\n", + dumpName(nbuff, hbuff, sizeof(hbuff))); + strcpy(ret->h_name, nbuff); + } + } + + if (ret == NULL) { + TRACE("LEAVE gethostbyaddr NULL\n"); + } else { + TRACE("LEAVE gethostbyaddr <%s>\n", + dumpHost(ret, hbuff, sizeof(hbuff))); + } + return (ret); +} + +WRAPPER_EXPORT HANDLE WSAAPI +WSAAsyncGetHostByName(HWND hWnd, u_int wMsg, + const char FAR * name, char FAR * buf, int buflen) +{ + HANDLE ret; + char nbuff[256]; + char hbuff[256]; + idn_resconf_t encodeCtx; + + TRACE("ENTER WSAAsyncGetHostByName <%-.100s>\n", name); + + encodeCtx = idnGetContext(); + + if (encodeCtx == NULL || name == NULL) { + ret = _org_WSAAsyncGetHostByName(hWnd, wMsg, + name, buf, buflen); + } else { + idnHook(hWnd, wMsg, buf, encodeCtx); + idnConvReq(encodeCtx, name, nbuff, sizeof(nbuff)); + TRACE("Converted Name <%s>\n", + dumpName(nbuff, hbuff, sizeof(hbuff))); + ret = _org_WSAAsyncGetHostByName(hWnd, wMsg, nbuff, + buf, buflen); + } + + TRACE("LEAVE WSAAsyncGetHostByName HANDLE %08x\n", ret); + + return (ret); +} + +WRAPPER_EXPORT HANDLE WSAAPI +WSAAsyncGetHostByAddr(HWND hWnd, u_int wMsg, const char FAR * addr, + int len, int type, char FAR * buf, int buflen) +{ + HANDLE ret; + char abuff[256]; + idn_resconf_t encodeCtx; + + encodeCtx = idnGetContext(); + + if (encodeCtx != NULL) { + idnHook(hWnd, wMsg, buf, encodeCtx); + } + + TRACE("ENTER WSAAsyncGetHostByAddr <%s>\n", + dumpAddr(addr, len, abuff, sizeof(abuff))); + ret = _org_WSAAsyncGetHostByAddr(hWnd, wMsg, addr, len, type, + buf, buflen); + TRACE("LEAVE WSAAsyncGetHostByAddr HANDLE %08x\n", ret); + + return (ret); +} + +WRAPPER_EXPORT INT WSAAPI +WSALookupServiceBeginA(LPWSAQUERYSETA lpqsRestrictions, + DWORD dwControlFlags, LPHANDLE lphLookup) +{ + INT ret; + char nbuff[256]; + char hbuff[256]; + LPSTR name = lpqsRestrictions->lpszServiceInstanceName; + LPGUID class = lpqsRestrictions->lpServiceClassId; + idn_resconf_t encodeCtx; + + TRACE("ENTER WSALookupServiceBeginA <%-.100s>\n", + name == NULL ? "<NULL>" : name); + + encodeCtx = idnGetContext(); + + if (name != NULL && encodeCtx != NULL && SVCID_IS_HABN(class) == 0) { + idnConvReq(encodeCtx, name, nbuff, sizeof(nbuff)); + TRACE("Converted Name <%s>\n", + dumpName(nbuff, hbuff, sizeof(hbuff))); + /* strcpy(lpqsRestrictions->lpszQueryString, nbuff); */ + lpqsRestrictions->lpszServiceInstanceName = nbuff; + } + ret = _org_WSALookupServiceBeginA(lpqsRestrictions, + dwControlFlags, lphLookup); + TRACE("LEAVE WSALookupServiceBeginA %d\n", ret); + + return (ret); +} + +WRAPPER_EXPORT INT WSAAPI +WSALookupServiceNextA(HANDLE hLookup, DWORD dwControlFlags, + LPDWORD lpdwBufferLength, LPWSAQUERYSETA lpqsResults) +{ + INT ret; + char nbuff[256]; + char hbuff[256]; + LPGUID class; + idn_resconf_t encodeCtx; + + TRACE("ENTER WSALookupServiceNextA\n"); + + encodeCtx = idnGetContext(); + + ret = _org_WSALookupServiceNextA(hLookup, dwControlFlags, + lpdwBufferLength, lpqsResults); + class = lpqsResults->lpServiceClassId; + + if (ret == 0 && + encodeCtx != NULL && + (dwControlFlags & LUP_RETURN_NAME) && + (SVCID_IS_HABN(class) || SVCID_IS_HABIS(class))) { + TRACE("Resulting Name <%s>\n", + dumpName(lpqsResults->lpszServiceInstanceName, + hbuff, sizeof(hbuff))); + if (idnConvRsp(encodeCtx, + lpqsResults->lpszServiceInstanceName, + nbuff, sizeof(nbuff)) == FALSE) { + TRACE("Decoding failed - return the name verbatim\n"); + } else { + TRACE("Converted Back <%s>\n", + dumpName(nbuff, hbuff, sizeof(hbuff))); + strcpy(lpqsResults->lpszServiceInstanceName, nbuff); + } + } + TRACE("LEAVE WSALookupServiceNextA %d <%s>\n", ret, nbuff); + + return (ret); +} + +WRAPPER_EXPORT INT WSAAPI +WSALookupServiceBeginW(LPWSAQUERYSETW lpqsRestrictions, + DWORD dwControlFlags, LPHANDLE lphLookup) +{ + INT ret; + + TRACE("ENTER WSALookupServiceBeginW\n"); + ret = _org_WSALookupServiceBeginW(lpqsRestrictions, + dwControlFlags,lphLookup); + TRACE("LEAVE WSALookupServiceBeginW %d\n", ret); + + return (ret); +} + +WRAPPER_EXPORT INT WSAAPI +WSALookupServiceNextW(HANDLE hLookup, DWORD dwControlFlags, + LPDWORD lpdwBufferLength, LPWSAQUERYSETW lpqsResults) +{ + INT ret; + + TRACE("ENTER WSALookupServiceNextW\n"); + ret = _org_WSALookupServiceNextW(hLookup, dwControlFlags, + lpdwBufferLength, lpqsResults); + TRACE("LEAVE WSALookupServiceNextW %d\n", ret); + + return (ret); +} + +WRAPPER_EXPORT INT WSAAPI +WSALookupServiceEnd(HANDLE hLookup) { + INT ret; + + TRACE("ENTER WSALookupServiceEnd\n"); + ret = _org_WSALookupServiceEnd(hLookup); + TRACE("LEAVE WSALookupServiceEnd %d\n", ret); + + return (ret); +} + +static int +obj_hash(void *key) { + /* + * Hash function for obj_*. + * 'key' is supposed to be an address. + */ + unsigned long v = (unsigned long)key; + + return ((v >> 3) % OBJLOCKHASH_SIZE); +} + +static int +obj_islocked(void *key) +{ + /* + * Check if the object specified by 'key' is locked. + * Return 1 if so, 0 otherwise. + */ + int h = obj_hash(key); + obj_lock_t *olp = obj_lock_hash[h]; + + while (olp != NULL) { + if (olp->key == key) + return (1); + olp = olp->next; + } + return (0); +} + +static void +obj_lock(void *key) +{ + /* + * Lock an object specified by 'key'. + */ + int h = obj_hash(key); + obj_lock_t *olp; + + olp = malloc(sizeof(obj_lock_t)); + if (olp != NULL) { + olp->key = key; + olp->next = obj_lock_hash[h]; + obj_lock_hash[h] = olp; + } +} + +static void +obj_unlock(void *key) +{ + /* + * Unlock an object specified by 'key'. + */ + int h = obj_hash(key); + obj_lock_t *olp, *olp0; + + olp = obj_lock_hash[h]; + olp0 = NULL; + while (olp != NULL) { + if (olp->key == key) { + if (olp0 == NULL) + obj_lock_hash[h] = olp->next; + else + olp0->next = olp->next; + free(olp); + return; + } + olp0 = olp; + olp = olp->next; + } +} + +static char * +decode_name_dynamic(const char *name, idn_resconf_t idnctx) { + BOOL stat; + char buf[256], tmp[256]; + char *s; + + if (idnConvRsp(idnctx, name, buf, sizeof(buf)) == TRUE) { + TRACE("Converted Back <%s>\n", + dumpName(buf, tmp, sizeof(tmp))); + name = buf; + } else { + TRACE("Decoding failed - return the name verbatim\n"); + } + s = malloc(strlen(name) + 1); + if (s == NULL) + return (NULL); + else + return (strcpy(s, name)); +} + +static struct my_addrinfo * +copy_decode_addrinfo_dynamic(struct my_addrinfo *aip, idn_resconf_t idnctx) +{ + struct my_addrinfo *newaip; + + if (aip == NULL) + return (NULL); + + newaip = malloc(sizeof(struct my_addrinfo) + aip->ai_addrlen); + if (newaip == NULL) + return (NULL); + + *newaip = *aip; + newaip->ai_addr = (struct sockaddr *)(newaip + 1); + memcpy(newaip->ai_addr, aip->ai_addr, aip->ai_addrlen); + + if (newaip->ai_canonname != NULL) + newaip->ai_canonname = decode_name_dynamic(aip->ai_canonname, + idnctx); + + newaip->ai_next = copy_decode_addrinfo_dynamic(aip->ai_next, idnctx); + return (newaip); +} + +static void +free_copied_addrinfo(struct my_addrinfo *aip) { + while (aip != NULL) { + struct my_addrinfo *next = aip->ai_next; + + if (aip->ai_canonname != NULL) + free(aip->ai_canonname); + free(aip); + aip = next; + } +} + +WRAPPER_EXPORT int WSAAPI +getaddrinfo(const char *nodename, const char *servname, + const struct my_addrinfo *hints, struct my_addrinfo **res) +{ + char namebuf[256]; + BOOL stat; + struct my_addrinfo *aip; + int err; + idn_resconf_t encodeCtx; + + TRACE("ENTER getaddrinfo <%-.100s>\n", nodename ? nodename : "NULL"); + + encodeCtx = idnGetContext(); + + if (nodename == NULL || encodeCtx == NULL) { + TRACE("conversion unnecessary\n"); + err = _org_getaddrinfo(nodename, servname, hints, res); + } else { + stat = idnConvReq(encodeCtx, nodename, + namebuf, sizeof(namebuf)); + if (stat == TRUE) { + nodename = namebuf; + TRACE("Converted Name <%-.100s>\n", namebuf); + } + + err = _org_getaddrinfo(nodename, servname, hints, &aip); + if (err == 0 && aip != NULL) { + *res = copy_decode_addrinfo_dynamic(aip, encodeCtx); + if (*res == NULL) + err = EAI_FAIL; + else + obj_lock(*res); + if (aip != NULL) + _org_freeaddrinfo(aip); + } + } + + TRACE("LEAVE getaddrinfo %d\n", err); + return (err); +} + +WRAPPER_EXPORT void WSAAPI +freeaddrinfo(struct my_addrinfo *aip) { + TRACE("ENTER freeaddrinfo aip=%p\n", (void *)aip); + + if (obj_islocked(aip)) { + /* + * We allocated the data. + */ + obj_unlock(aip); + free_copied_addrinfo(aip); + } else { + /* + * It was allocated the original getaddrinfo(). + */ + TRACE("Not allocated by the wrapper\n"); + _org_freeaddrinfo(aip); + } + TRACE("LEAVE freeaddrinfo\n"); +} + +WRAPPER_EXPORT int WSAAPI +getnameinfo(const struct sockaddr *sa, DWORD salen, + char *host, DWORD hostlen, char *serv, + DWORD servlen, int flags) +{ + char name[256]; + size_t namelen = sizeof(name); + int code; + BOOL stat; + idn_resconf_t encodeCtx; + + TRACE("ENTER getnameinfo\n"); + + encodeCtx = idnGetContext(); + + if (host == NULL || hostlen == 0 || encodeCtx == NULL) { + TRACE("conversion unnecessary\n"); + code = _org_getnameinfo(sa, salen, host, hostlen, + serv, servlen, flags); + } else { + code = _org_getnameinfo(sa, salen, name, namelen, + serv, servlen, flags); + if (code == 0 && name[0] != '\0') { + stat = idnConvRsp(encodeCtx, name, host, hostlen); + if (stat == FALSE) { + TRACE("Decoding failed - return the name verbatim\n"); + if (strlen(name) >= hostlen) { + code = EAI_FAIL; + } else { + strcpy(host, name); + } + } else { + TRACE("Converted Back <%s>\n", + dumpName(host, name, sizeof(name))); + } + } + } + + TRACE("LEAVE getnameinfo %d\n", code); + return (code); +} diff --git a/contrib/idn/idnkit-1.0-src/wsock/wsock20/dllload.c b/contrib/idn/idnkit-1.0-src/wsock/wsock20/dllload.c new file mode 100644 index 0000000..0f1257e --- /dev/null +++ b/contrib/idn/idnkit-1.0-src/wsock/wsock20/dllload.c @@ -0,0 +1,62 @@ +/* + * dllload.c - load original entries + */ + +/* + * Copyright (c) 2000 Japan Network Information Center. All rights reserved. + * + * By using this file, you agree to the terms and conditions set forth bellow. + * + * LICENSE TERMS AND CONDITIONS + * + * The following License Terms and Conditions apply, unless a different + * license is obtained from Japan Network Information Center ("JPNIC"), + * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, + * Chiyoda-ku, Tokyo 101-0047, Japan. + * + * 1. Use, Modification and Redistribution (including distribution of any + * modified or derived work) in source and/or binary forms is permitted + * under this License Terms and Conditions. + * + * 2. Redistribution of source code must retain the copyright notices as they + * appear in each source code file, this License Terms and Conditions. + * + * 3. Redistribution in binary form must reproduce the Copyright Notice, + * this License Terms and Conditions, in the documentation and/or other + * materials provided with the distribution. For the purposes of binary + * distribution the "Copyright Notice" refers to the following language: + * "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved." + * + * 4. The name of JPNIC may not be used to endorse or promote products + * derived from this Software without specific prior written approval of + * JPNIC. + * + * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + */ + +#include <windows.h> +#include <winsock2.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <process.h> + +#include "dlldef.h" + +/* + * Manages original DLL + */ + +#define DLLHANDLE idnWinsockHandle() + +#include "dllstub.c" diff --git a/contrib/idn/idnkit-1.0-src/wsock/wsock20/dllmain.c b/contrib/idn/idnkit-1.0-src/wsock/wsock20/dllmain.c new file mode 100644 index 0000000..c6609bc --- /dev/null +++ b/contrib/idn/idnkit-1.0-src/wsock/wsock20/dllmain.c @@ -0,0 +1,94 @@ +/* + * dllmain.c - entry for DLL + */ + +/* + * Copyright (c) 2000 Japan Network Information Center. All rights reserved. + * + * By using this file, you agree to the terms and conditions set forth bellow. + * + * LICENSE TERMS AND CONDITIONS + * + * The following License Terms and Conditions apply, unless a different + * license is obtained from Japan Network Information Center ("JPNIC"), + * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, + * Chiyoda-ku, Tokyo 101-0047, Japan. + * + * 1. Use, Modification and Redistribution (including distribution of any + * modified or derived work) in source and/or binary forms is permitted + * under this License Terms and Conditions. + * + * 2. Redistribution of source code must retain the copyright notices as they + * appear in each source code file, this License Terms and Conditions. + * + * 3. Redistribution in binary form must reproduce the Copyright Notice, + * this License Terms and Conditions, in the documentation and/or other + * materials provided with the distribution. For the purposes of binary + * distribution the "Copyright Notice" refers to the following language: + * "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved." + * + * 4. The name of JPNIC may not be used to endorse or promote products + * derived from this Software without specific prior written approval of + * JPNIC. + * + * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + */ + +#include <windows.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <process.h> + +#include "dlldef.h" + +/* + * Control Variables + */ + +int procPid = 0; + +static char procExe[256]; + +/* + * DLL Entry + */ + +BOOL APIENTRY +DllMain(HMODULE hmod, DWORD reason, LPVOID *resv) { + switch (reason) { + case DLL_PROCESS_ATTACH: + procPid = getpid(); + GetModuleFileName(NULL, procExe, 256); + + idnLogInit("ws20"); + idnHookInit(); + + TRACE("Attached to Process <%s>\n", procExe); + return (idnWinsockVersion("2.0")); + + case DLL_PROCESS_DETACH: + idnConvDone(idnGetContext()); + idnHookDone(); + TRACE("Detached from Process\n"); + idnLogFinish(); + break; + + case DLL_THREAD_ATTACH: + break; + case DLL_THREAD_DETACH: + break; + } + + return (TRUE); +} diff --git a/contrib/idn/idnkit-1.0-src/wsock/wsock20/dllstub.c b/contrib/idn/idnkit-1.0-src/wsock/wsock20/dllstub.c new file mode 100644 index 0000000..afc4537 --- /dev/null +++ b/contrib/idn/idnkit-1.0-src/wsock/wsock20/dllstub.c @@ -0,0 +1,2168 @@ +/* $Id: dllstub.c,v 1.1.1.1 2003/06/04 00:27:51 marka Exp $ */ + +SOCKET PASCAL +accept(SOCKET a0, struct sockaddr* a1, int* a2) +{ + static SOCKET (PASCAL *fp)(SOCKET a0, struct sockaddr* a1, int* a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub accept() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "accept")) == NULL) { + FATAL("cannot find entry accept (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +int PASCAL +bind(SOCKET a0, const struct sockaddr* a1, int a2) +{ + static int (PASCAL *fp)(SOCKET a0, const struct sockaddr* a1, int a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub bind() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "bind")) == NULL) { + FATAL("cannot find entry bind (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +int PASCAL +closesocket(SOCKET a0) +{ + static int (PASCAL *fp)(SOCKET a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub closesocket() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "closesocket")) == NULL) { + FATAL("cannot find entry closesocket (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +int PASCAL +connect(SOCKET a0, const struct sockaddr* a1, int a2) +{ + static int (PASCAL *fp)(SOCKET a0, const struct sockaddr* a1, int a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub connect() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "connect")) == NULL) { + FATAL("cannot find entry connect (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +int PASCAL +getpeername(SOCKET a0, struct sockaddr* a1, int* a2) +{ + static int (PASCAL *fp)(SOCKET a0, struct sockaddr* a1, int* a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub getpeername() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "getpeername")) == NULL) { + FATAL("cannot find entry getpeername (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +int PASCAL +getsockname(SOCKET a0, struct sockaddr* a1, int* a2) +{ + static int (PASCAL *fp)(SOCKET a0, struct sockaddr* a1, int* a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub getsockname() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "getsockname")) == NULL) { + FATAL("cannot find entry getsockname (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +int PASCAL +getsockopt(SOCKET a0, int a1, int a2, char* a3, int* a4) +{ + static int (PASCAL *fp)(SOCKET a0, int a1, int a2, char* a3, int* a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub getsockopt() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "getsockopt")) == NULL) { + FATAL("cannot find entry getsockopt (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +u_long PASCAL +htonl(u_long a0) +{ + static u_long (PASCAL *fp)(u_long a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub htonl() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "htonl")) == NULL) { + FATAL("cannot find entry htonl (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +u_short PASCAL +htons(u_short a0) +{ + static u_short (PASCAL *fp)(u_short a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub htons() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "htons")) == NULL) { + FATAL("cannot find entry htons (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +int PASCAL +ioctlsocket(SOCKET a0, long a1, u_long * a2) +{ + static int (PASCAL *fp)(SOCKET a0, long a1, u_long * a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub ioctlsocket() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "ioctlsocket")) == NULL) { + FATAL("cannot find entry ioctlsocket (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +unsigned long PASCAL +inet_addr(const char* a0) +{ + static unsigned long (PASCAL *fp)(const char* a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub inet_addr() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "inet_addr")) == NULL) { + FATAL("cannot find entry inet_addr (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + + char * PASCAL +inet_ntoa(struct in_addr a0) +{ + static char * (PASCAL *fp)(struct in_addr a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub inet_ntoa() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "inet_ntoa")) == NULL) { + FATAL("cannot find entry inet_ntoa (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +int PASCAL +listen(SOCKET a0, int a1) +{ + static int (PASCAL *fp)(SOCKET a0, int a1); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub listen() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "listen")) == NULL) { + FATAL("cannot find entry listen (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1); +} + +u_long PASCAL +ntohl(u_long a0) +{ + static u_long (PASCAL *fp)(u_long a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub ntohl() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "ntohl")) == NULL) { + FATAL("cannot find entry ntohl (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +u_short PASCAL +ntohs(u_short a0) +{ + static u_short (PASCAL *fp)(u_short a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub ntohs() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "ntohs")) == NULL) { + FATAL("cannot find entry ntohs (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +int PASCAL +recv(SOCKET a0, char* a1, int a2, int a3) +{ + static int (PASCAL *fp)(SOCKET a0, char* a1, int a2, int a3); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub recv() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "recv")) == NULL) { + FATAL("cannot find entry recv (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3); +} + +int PASCAL +recvfrom(SOCKET a0, char* a1, int a2, int a3, struct sockaddr* a4, int* a5) +{ + static int (PASCAL *fp)(SOCKET a0, char* a1, int a2, int a3, struct sockaddr* a4, int* a5); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub recvfrom() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "recvfrom")) == NULL) { + FATAL("cannot find entry recvfrom (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4, a5); +} + +int PASCAL +select(int a0, fd_set* a1, fd_set* a2, fd_set* a3, const struct timeval* a4) +{ + static int (PASCAL *fp)(int a0, fd_set* a1, fd_set* a2, fd_set* a3, const struct timeval* a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub select() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "select")) == NULL) { + FATAL("cannot find entry select (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +int PASCAL +send(SOCKET a0, const char* a1, int a2, int a3) +{ + static int (PASCAL *fp)(SOCKET a0, const char* a1, int a2, int a3); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub send() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "send")) == NULL) { + FATAL("cannot find entry send (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3); +} + +int PASCAL +sendto(SOCKET a0, const char* a1, int a2, int a3, const struct sockaddr* a4, int a5) +{ + static int (PASCAL *fp)(SOCKET a0, const char* a1, int a2, int a3, const struct sockaddr* a4, int a5); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub sendto() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "sendto")) == NULL) { + FATAL("cannot find entry sendto (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4, a5); +} + +int PASCAL +setsockopt(SOCKET a0, int a1, int a2, const char* a3, int a4) +{ + static int (PASCAL *fp)(SOCKET a0, int a1, int a2, const char* a3, int a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub setsockopt() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "setsockopt")) == NULL) { + FATAL("cannot find entry setsockopt (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +int PASCAL +shutdown(SOCKET a0, int a1) +{ + static int (PASCAL *fp)(SOCKET a0, int a1); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub shutdown() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "shutdown")) == NULL) { + FATAL("cannot find entry shutdown (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1); +} + +SOCKET PASCAL +socket(int a0, int a1, int a2) +{ + static SOCKET (PASCAL *fp)(int a0, int a1, int a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub socket() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "socket")) == NULL) { + FATAL("cannot find entry socket (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +int PASCAL +WSApSetPostRoutine(int a0) +{ + static int (PASCAL *fp)(int a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSApSetPostRoutine() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSApSetPostRoutine")) == NULL) { + FATAL("cannot find entry WSApSetPostRoutine (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +WSAEVENT WSAAPI +WPUCompleteOverlappedRequest(SOCKET a0, LPWSAOVERLAPPED a1, DWORD a2, DWORD a3, LPINT a4) +{ + static WSAEVENT (WSAAPI *fp)(SOCKET a0, LPWSAOVERLAPPED a1, DWORD a2, DWORD a3, LPINT a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WPUCompleteOverlappedRequest() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WPUCompleteOverlappedRequest")) == NULL) { + FATAL("cannot find entry WPUCompleteOverlappedRequest (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +SOCKET WINAPI +WSAAccept(SOCKET a0, struct sockaddr * a1, LPINT a2, LPCONDITIONPROC a3, DWORD a4) +{ + static SOCKET (WINAPI *fp)(SOCKET a0, struct sockaddr * a1, LPINT a2, LPCONDITIONPROC a3, DWORD a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAAccept() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAAccept")) == NULL) { + FATAL("cannot find entry WSAAccept (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +INT WINAPI +WSAAddressToStringA(LPSOCKADDR a0, DWORD a1, LPWSAPROTOCOL_INFOA a2, LPSTR a3, LPDWORD a4) +{ + static INT (WINAPI *fp)(LPSOCKADDR a0, DWORD a1, LPWSAPROTOCOL_INFOA a2, LPSTR a3, LPDWORD a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAAddressToStringA() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAAddressToStringA")) == NULL) { + FATAL("cannot find entry WSAAddressToStringA (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +INT WINAPI +WSAAddressToStringW(LPSOCKADDR a0, DWORD a1, LPWSAPROTOCOL_INFOW a2, LPWSTR a3, LPDWORD a4) +{ + static INT (WINAPI *fp)(LPSOCKADDR a0, DWORD a1, LPWSAPROTOCOL_INFOW a2, LPWSTR a3, LPDWORD a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAAddressToStringW() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAAddressToStringW")) == NULL) { + FATAL("cannot find entry WSAAddressToStringW (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +BOOL WINAPI +WSACloseEvent(WSAEVENT a0) +{ + static BOOL (WINAPI *fp)(WSAEVENT a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSACloseEvent() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSACloseEvent")) == NULL) { + FATAL("cannot find entry WSACloseEvent (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +int WINAPI +WSAConnect(SOCKET a0, const struct sockaddr * a1, int a2, LPWSABUF a3, LPWSABUF a4, LPQOS a5, LPQOS a6) +{ + static int (WINAPI *fp)(SOCKET a0, const struct sockaddr * a1, int a2, LPWSABUF a3, LPWSABUF a4, LPQOS a5, LPQOS a6); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAConnect() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAConnect")) == NULL) { + FATAL("cannot find entry WSAConnect (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4, a5, a6); +} + +WSAEVENT WINAPI +WSACreateEvent(void) +{ + static WSAEVENT (WINAPI *fp)(void); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSACreateEvent() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSACreateEvent")) == NULL) { + FATAL("cannot find entry WSACreateEvent (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(); +} + +int WINAPI +WSADuplicateSocketA(SOCKET a0, DWORD a1, LPWSAPROTOCOL_INFOA a2) +{ + static int (WINAPI *fp)(SOCKET a0, DWORD a1, LPWSAPROTOCOL_INFOA a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSADuplicateSocketA() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSADuplicateSocketA")) == NULL) { + FATAL("cannot find entry WSADuplicateSocketA (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +int WINAPI +WSADuplicateSocketW(SOCKET a0, DWORD a1, LPWSAPROTOCOL_INFOW a2) +{ + static int (WINAPI *fp)(SOCKET a0, DWORD a1, LPWSAPROTOCOL_INFOW a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSADuplicateSocketW() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSADuplicateSocketW")) == NULL) { + FATAL("cannot find entry WSADuplicateSocketW (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +INT WINAPI +WSAEnumNameSpaceProvidersA(LPDWORD a0, LPWSANAMESPACE_INFOA a1) +{ + static INT (WINAPI *fp)(LPDWORD a0, LPWSANAMESPACE_INFOA a1); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAEnumNameSpaceProvidersA() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAEnumNameSpaceProvidersA")) == NULL) { + FATAL("cannot find entry WSAEnumNameSpaceProvidersA (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1); +} + +INT WINAPI +WSAEnumNameSpaceProvidersW(LPDWORD a0, LPWSANAMESPACE_INFOW a1) +{ + static INT (WINAPI *fp)(LPDWORD a0, LPWSANAMESPACE_INFOW a1); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAEnumNameSpaceProvidersW() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAEnumNameSpaceProvidersW")) == NULL) { + FATAL("cannot find entry WSAEnumNameSpaceProvidersW (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1); +} + +int WINAPI +WSAEnumNetworkEvents(SOCKET a0, WSAEVENT a1, LPWSANETWORKEVENTS a2) +{ + static int (WINAPI *fp)(SOCKET a0, WSAEVENT a1, LPWSANETWORKEVENTS a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAEnumNetworkEvents() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAEnumNetworkEvents")) == NULL) { + FATAL("cannot find entry WSAEnumNetworkEvents (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +int WINAPI +WSAEnumProtocolsA(LPINT a0, LPWSAPROTOCOL_INFOA a1, LPDWORD a2) +{ + static int (WINAPI *fp)(LPINT a0, LPWSAPROTOCOL_INFOA a1, LPDWORD a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAEnumProtocolsA() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAEnumProtocolsA")) == NULL) { + FATAL("cannot find entry WSAEnumProtocolsA (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +int WINAPI +WSAEnumProtocolsW(LPINT a0, LPWSAPROTOCOL_INFOW a1, LPDWORD a2) +{ + static int (WINAPI *fp)(LPINT a0, LPWSAPROTOCOL_INFOW a1, LPDWORD a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAEnumProtocolsW() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAEnumProtocolsW")) == NULL) { + FATAL("cannot find entry WSAEnumProtocolsW (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +int WINAPI +WSAEventSelect(SOCKET a0, WSAEVENT a1, long a2) +{ + static int (WINAPI *fp)(SOCKET a0, WSAEVENT a1, long a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAEventSelect() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAEventSelect")) == NULL) { + FATAL("cannot find entry WSAEventSelect (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +BOOL WINAPI +WSAGetOverlappedResult(SOCKET a0, LPWSAOVERLAPPED a1, LPDWORD a2, BOOL a3, LPDWORD a4) +{ + static BOOL (WINAPI *fp)(SOCKET a0, LPWSAOVERLAPPED a1, LPDWORD a2, BOOL a3, LPDWORD a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAGetOverlappedResult() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAGetOverlappedResult")) == NULL) { + FATAL("cannot find entry WSAGetOverlappedResult (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +BOOL WINAPI +WSAGetQOSByName(SOCKET a0, LPWSABUF a1, LPQOS a2) +{ + static BOOL (WINAPI *fp)(SOCKET a0, LPWSABUF a1, LPQOS a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAGetQOSByName() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAGetQOSByName")) == NULL) { + FATAL("cannot find entry WSAGetQOSByName (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +INT WINAPI +WSAGetServiceClassInfoA(LPGUID a0, LPGUID a1, LPDWORD a2, LPWSASERVICECLASSINFOA a3) +{ + static INT (WINAPI *fp)(LPGUID a0, LPGUID a1, LPDWORD a2, LPWSASERVICECLASSINFOA a3); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAGetServiceClassInfoA() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAGetServiceClassInfoA")) == NULL) { + FATAL("cannot find entry WSAGetServiceClassInfoA (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3); +} + +INT WINAPI +WSAGetServiceClassInfoW(LPGUID a0, LPGUID a1, LPDWORD a2, LPWSASERVICECLASSINFOW a3) +{ + static INT (WINAPI *fp)(LPGUID a0, LPGUID a1, LPDWORD a2, LPWSASERVICECLASSINFOW a3); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAGetServiceClassInfoW() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAGetServiceClassInfoW")) == NULL) { + FATAL("cannot find entry WSAGetServiceClassInfoW (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3); +} + +INT WINAPI +WSAGetServiceClassNameByClassIdA(LPGUID a0, LPSTR a1, LPDWORD a2) +{ + static INT (WINAPI *fp)(LPGUID a0, LPSTR a1, LPDWORD a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAGetServiceClassNameByClassIdA() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAGetServiceClassNameByClassIdA")) == NULL) { + FATAL("cannot find entry WSAGetServiceClassNameByClassIdA (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +INT WINAPI +WSAGetServiceClassNameByClassIdW(LPGUID a0, LPWSTR a1, LPDWORD a2) +{ + static INT (WINAPI *fp)(LPGUID a0, LPWSTR a1, LPDWORD a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAGetServiceClassNameByClassIdW() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAGetServiceClassNameByClassIdW")) == NULL) { + FATAL("cannot find entry WSAGetServiceClassNameByClassIdW (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +int WINAPI +WSAHtonl(SOCKET a0, unsigned long a1, unsigned long * a2) +{ + static int (WINAPI *fp)(SOCKET a0, unsigned long a1, unsigned long * a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAHtonl() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAHtonl")) == NULL) { + FATAL("cannot find entry WSAHtonl (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +int WINAPI +WSAHtons(SOCKET a0, unsigned short a1, unsigned short * a2) +{ + static int (WINAPI *fp)(SOCKET a0, unsigned short a1, unsigned short * a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAHtons() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAHtons")) == NULL) { + FATAL("cannot find entry WSAHtons (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +INT WINAPI +WSAInstallServiceClassA(LPWSASERVICECLASSINFOA a0) +{ + static INT (WINAPI *fp)(LPWSASERVICECLASSINFOA a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAInstallServiceClassA() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAInstallServiceClassA")) == NULL) { + FATAL("cannot find entry WSAInstallServiceClassA (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +INT WINAPI +WSAInstallServiceClassW(LPWSASERVICECLASSINFOW a0) +{ + static INT (WINAPI *fp)(LPWSASERVICECLASSINFOW a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAInstallServiceClassW() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAInstallServiceClassW")) == NULL) { + FATAL("cannot find entry WSAInstallServiceClassW (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +int WINAPI +WSAIoctl(SOCKET a0, DWORD a1, LPVOID a2, DWORD a3, LPVOID a4, DWORD a5, LPDWORD a6, LPWSAOVERLAPPED a7, LPWSAOVERLAPPED_COMPLETION_ROUTINE a8) +{ + static int (WINAPI *fp)(SOCKET a0, DWORD a1, LPVOID a2, DWORD a3, LPVOID a4, DWORD a5, LPDWORD a6, LPWSAOVERLAPPED a7, LPWSAOVERLAPPED_COMPLETION_ROUTINE a8); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAIoctl() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAIoctl")) == NULL) { + FATAL("cannot find entry WSAIoctl (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4, a5, a6, a7, a8); +} + + struct hostent * PASCAL +_org_gethostbyaddr(const char* a0, int a1, int a2) +{ + static struct hostent * (PASCAL *fp)(const char* a0, int a1, int a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub _org_gethostbyaddr() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "gethostbyaddr")) == NULL) { + FATAL("cannot find entry gethostbyaddr (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + + struct hostent * PASCAL +_org_gethostbyname(const char* a0) +{ + static struct hostent * (PASCAL *fp)(const char* a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub _org_gethostbyname() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "gethostbyname")) == NULL) { + FATAL("cannot find entry gethostbyname (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + + struct protoent * PASCAL +getprotobyname(const char* a0) +{ + static struct protoent * (PASCAL *fp)(const char* a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub getprotobyname() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "getprotobyname")) == NULL) { + FATAL("cannot find entry getprotobyname (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + + struct protoent * PASCAL +getprotobynumber(int a0) +{ + static struct protoent * (PASCAL *fp)(int a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub getprotobynumber() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "getprotobynumber")) == NULL) { + FATAL("cannot find entry getprotobynumber (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + + struct servent * PASCAL +getservbyname(const char* a0, const char* a1) +{ + static struct servent * (PASCAL *fp)(const char* a0, const char* a1); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub getservbyname() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "getservbyname")) == NULL) { + FATAL("cannot find entry getservbyname (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1); +} + + struct servent * PASCAL +getservbyport(int a0, const char* a1) +{ + static struct servent * (PASCAL *fp)(int a0, const char* a1); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub getservbyport() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "getservbyport")) == NULL) { + FATAL("cannot find entry getservbyport (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1); +} + +int PASCAL +_org_gethostname(char* a0, int a1) +{ + static int (PASCAL *fp)(char* a0, int a1); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub _org_gethostname() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "gethostname")) == NULL) { + FATAL("cannot find entry gethostname (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1); +} + +SOCKET WINAPI +WSAJoinLeaf(SOCKET a0, const struct sockaddr * a1, int a2, LPWSABUF a3, LPWSABUF a4, LPQOS a5, LPQOS a6, DWORD a7) +{ + static SOCKET (WINAPI *fp)(SOCKET a0, const struct sockaddr * a1, int a2, LPWSABUF a3, LPWSABUF a4, LPQOS a5, LPQOS a6, DWORD a7); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAJoinLeaf() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAJoinLeaf")) == NULL) { + FATAL("cannot find entry WSAJoinLeaf (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4, a5, a6, a7); +} + +INT WINAPI +_org_WSALookupServiceBeginA(LPWSAQUERYSETA a0, DWORD a1, LPHANDLE a2) +{ + static INT (WINAPI *fp)(LPWSAQUERYSETA a0, DWORD a1, LPHANDLE a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub _org_WSALookupServiceBeginA() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSALookupServiceBeginA")) == NULL) { + FATAL("cannot find entry WSALookupServiceBeginA (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +INT WINAPI +_org_WSALookupServiceBeginW(LPWSAQUERYSETW a0, DWORD a1, LPHANDLE a2) +{ + static INT (WINAPI *fp)(LPWSAQUERYSETW a0, DWORD a1, LPHANDLE a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub _org_WSALookupServiceBeginW() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSALookupServiceBeginW")) == NULL) { + FATAL("cannot find entry WSALookupServiceBeginW (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +INT WINAPI +_org_WSALookupServiceEnd(HANDLE a0) +{ + static INT (WINAPI *fp)(HANDLE a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub _org_WSALookupServiceEnd() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSALookupServiceEnd")) == NULL) { + FATAL("cannot find entry WSALookupServiceEnd (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +INT WINAPI +_org_WSALookupServiceNextA(HANDLE a0, DWORD a1, LPDWORD a2, LPWSAQUERYSETA a3) +{ + static INT (WINAPI *fp)(HANDLE a0, DWORD a1, LPDWORD a2, LPWSAQUERYSETA a3); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub _org_WSALookupServiceNextA() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSALookupServiceNextA")) == NULL) { + FATAL("cannot find entry WSALookupServiceNextA (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3); +} + +INT WINAPI +_org_WSALookupServiceNextW(HANDLE a0, DWORD a1, LPDWORD a2, LPWSAQUERYSETW a3) +{ + static INT (WINAPI *fp)(HANDLE a0, DWORD a1, LPDWORD a2, LPWSAQUERYSETW a3); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub _org_WSALookupServiceNextW() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSALookupServiceNextW")) == NULL) { + FATAL("cannot find entry WSALookupServiceNextW (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3); +} + +int WINAPI +WSANtohl(SOCKET a0, unsigned long a1, unsigned long * a2) +{ + static int (WINAPI *fp)(SOCKET a0, unsigned long a1, unsigned long * a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSANtohl() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSANtohl")) == NULL) { + FATAL("cannot find entry WSANtohl (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +int WINAPI +WSANtohs(SOCKET a0, unsigned short a1, unsigned short * a2) +{ + static int (WINAPI *fp)(SOCKET a0, unsigned short a1, unsigned short * a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSANtohs() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSANtohs")) == NULL) { + FATAL("cannot find entry WSANtohs (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +int WSAAPI +WSAProviderConfigChange(LPHANDLE a0, LPWSAOVERLAPPED a1, LPWSAOVERLAPPED_COMPLETION_ROUTINE a2) +{ + static int (WSAAPI *fp)(LPHANDLE a0, LPWSAOVERLAPPED a1, LPWSAOVERLAPPED_COMPLETION_ROUTINE a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAProviderConfigChange() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAProviderConfigChange")) == NULL) { + FATAL("cannot find entry WSAProviderConfigChange (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +int WINAPI +WSARecv(SOCKET a0, LPWSABUF a1, DWORD a2, LPDWORD a3, LPDWORD a4, LPWSAOVERLAPPED a5, LPWSAOVERLAPPED_COMPLETION_ROUTINE a6) +{ + static int (WINAPI *fp)(SOCKET a0, LPWSABUF a1, DWORD a2, LPDWORD a3, LPDWORD a4, LPWSAOVERLAPPED a5, LPWSAOVERLAPPED_COMPLETION_ROUTINE a6); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSARecv() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSARecv")) == NULL) { + FATAL("cannot find entry WSARecv (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4, a5, a6); +} + +int WINAPI +WSARecvDisconnect(SOCKET a0, LPWSABUF a1) +{ + static int (WINAPI *fp)(SOCKET a0, LPWSABUF a1); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSARecvDisconnect() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSARecvDisconnect")) == NULL) { + FATAL("cannot find entry WSARecvDisconnect (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1); +} + +int WINAPI +WSARecvFrom(SOCKET a0, LPWSABUF a1, DWORD a2, LPDWORD a3, LPDWORD a4, struct sockaddr * a5, LPINT a6, LPWSAOVERLAPPED a7, LPWSAOVERLAPPED_COMPLETION_ROUTINE a8) +{ + static int (WINAPI *fp)(SOCKET a0, LPWSABUF a1, DWORD a2, LPDWORD a3, LPDWORD a4, struct sockaddr * a5, LPINT a6, LPWSAOVERLAPPED a7, LPWSAOVERLAPPED_COMPLETION_ROUTINE a8); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSARecvFrom() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSARecvFrom")) == NULL) { + FATAL("cannot find entry WSARecvFrom (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4, a5, a6, a7, a8); +} + +INT WINAPI +WSARemoveServiceClass(LPGUID a0) +{ + static INT (WINAPI *fp)(LPGUID a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSARemoveServiceClass() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSARemoveServiceClass")) == NULL) { + FATAL("cannot find entry WSARemoveServiceClass (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +BOOL WINAPI +WSAResetEvent(WSAEVENT a0) +{ + static BOOL (WINAPI *fp)(WSAEVENT a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAResetEvent() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAResetEvent")) == NULL) { + FATAL("cannot find entry WSAResetEvent (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +int WINAPI +WSASend(SOCKET a0, LPWSABUF a1, DWORD a2, LPDWORD a3, DWORD a4, LPWSAOVERLAPPED a5, LPWSAOVERLAPPED_COMPLETION_ROUTINE a6) +{ + static int (WINAPI *fp)(SOCKET a0, LPWSABUF a1, DWORD a2, LPDWORD a3, DWORD a4, LPWSAOVERLAPPED a5, LPWSAOVERLAPPED_COMPLETION_ROUTINE a6); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSASend() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSASend")) == NULL) { + FATAL("cannot find entry WSASend (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4, a5, a6); +} + +int WINAPI +WSASendDisconnect(SOCKET a0, LPWSABUF a1) +{ + static int (WINAPI *fp)(SOCKET a0, LPWSABUF a1); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSASendDisconnect() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSASendDisconnect")) == NULL) { + FATAL("cannot find entry WSASendDisconnect (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1); +} + +int WINAPI +WSASendTo(SOCKET a0, LPWSABUF a1, DWORD a2, LPDWORD a3, DWORD a4, const struct sockaddr * a5, int a6, LPWSAOVERLAPPED a7, LPWSAOVERLAPPED_COMPLETION_ROUTINE a8) +{ + static int (WINAPI *fp)(SOCKET a0, LPWSABUF a1, DWORD a2, LPDWORD a3, DWORD a4, const struct sockaddr * a5, int a6, LPWSAOVERLAPPED a7, LPWSAOVERLAPPED_COMPLETION_ROUTINE a8); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSASendTo() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSASendTo")) == NULL) { + FATAL("cannot find entry WSASendTo (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4, a5, a6, a7, a8); +} + +BOOL WINAPI +WSASetEvent(WSAEVENT a0) +{ + static BOOL (WINAPI *fp)(WSAEVENT a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSASetEvent() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSASetEvent")) == NULL) { + FATAL("cannot find entry WSASetEvent (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +INT WSAAPI +WSASetServiceA(LPWSAQUERYSETA a0, WSAESETSERVICEOP a1, DWORD a2) +{ + static INT (WSAAPI *fp)(LPWSAQUERYSETA a0, WSAESETSERVICEOP a1, DWORD a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSASetServiceA() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSASetServiceA")) == NULL) { + FATAL("cannot find entry WSASetServiceA (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +INT WINAPI +WSASetServiceW(LPWSAQUERYSETW a0, WSAESETSERVICEOP a1, DWORD a2) +{ + static INT (WINAPI *fp)(LPWSAQUERYSETW a0, WSAESETSERVICEOP a1, DWORD a2); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSASetServiceW() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSASetServiceW")) == NULL) { + FATAL("cannot find entry WSASetServiceW (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2); +} + +SOCKET WINAPI +WSASocketA(int a0, int a1, int a2, LPWSAPROTOCOL_INFOA a3, GROUP a4, DWORD a5) +{ + static SOCKET (WINAPI *fp)(int a0, int a1, int a2, LPWSAPROTOCOL_INFOA a3, GROUP a4, DWORD a5); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSASocketA() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSASocketA")) == NULL) { + FATAL("cannot find entry WSASocketA (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4, a5); +} + +SOCKET WINAPI +WSASocketW(int a0, int a1, int a2, LPWSAPROTOCOL_INFOW a3, GROUP a4, DWORD a5) +{ + static SOCKET (WINAPI *fp)(int a0, int a1, int a2, LPWSAPROTOCOL_INFOW a3, GROUP a4, DWORD a5); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSASocketW() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSASocketW")) == NULL) { + FATAL("cannot find entry WSASocketW (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4, a5); +} + +INT WINAPI +WSAStringToAddressA(LPSTR a0, INT a1, LPWSAPROTOCOL_INFOA a2, LPSOCKADDR a3, LPINT a4) +{ + static INT (WINAPI *fp)(LPSTR a0, INT a1, LPWSAPROTOCOL_INFOA a2, LPSOCKADDR a3, LPINT a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAStringToAddressA() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAStringToAddressA")) == NULL) { + FATAL("cannot find entry WSAStringToAddressA (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +INT WINAPI +WSAStringToAddressW(LPWSTR a0, INT a1, LPWSAPROTOCOL_INFOW a2, LPSOCKADDR a3, LPINT a4) +{ + static INT (WINAPI *fp)(LPWSTR a0, INT a1, LPWSAPROTOCOL_INFOW a2, LPSOCKADDR a3, LPINT a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAStringToAddressW() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAStringToAddressW")) == NULL) { + FATAL("cannot find entry WSAStringToAddressW (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +DWORD WINAPI +WSAWaitForMultipleEvents(DWORD a0, const WSAEVENT * a1, BOOL a2, DWORD a3, BOOL a4) +{ + static DWORD (WINAPI *fp)(DWORD a0, const WSAEVENT * a1, BOOL a2, DWORD a3, BOOL a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAWaitForMultipleEvents() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAWaitForMultipleEvents")) == NULL) { + FATAL("cannot find entry WSAWaitForMultipleEvents (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +int WINAPI +WSCDeinstallProvider(LPGUID a0, LPINT a1) +{ + static int (WINAPI *fp)(LPGUID a0, LPINT a1); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSCDeinstallProvider() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSCDeinstallProvider")) == NULL) { + FATAL("cannot find entry WSCDeinstallProvider (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1); +} + +int WINAPI +WSCEnableNSProvider(LPGUID a0, BOOL a1) +{ + static int (WINAPI *fp)(LPGUID a0, BOOL a1); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSCEnableNSProvider() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSCEnableNSProvider")) == NULL) { + FATAL("cannot find entry WSCEnableNSProvider (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1); +} + +int WINAPI +WSCEnumProtocols(LPINT a0, LPWSAPROTOCOL_INFOW a1, LPDWORD a2, LPINT a3) +{ + static int (WINAPI *fp)(LPINT a0, LPWSAPROTOCOL_INFOW a1, LPDWORD a2, LPINT a3); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSCEnumProtocols() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSCEnumProtocols")) == NULL) { + FATAL("cannot find entry WSCEnumProtocols (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3); +} + +int WINAPI +WSCGetProviderPath(LPGUID a0, LPWSTR a1, LPINT a2, LPINT a3) +{ + static int (WINAPI *fp)(LPGUID a0, LPWSTR a1, LPINT a2, LPINT a3); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSCGetProviderPath() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSCGetProviderPath")) == NULL) { + FATAL("cannot find entry WSCGetProviderPath (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3); +} + +int WINAPI +WSCInstallNameSpace(LPWSTR a0, LPWSTR a1, DWORD a2, DWORD a3, LPGUID a4) +{ + static int (WINAPI *fp)(LPWSTR a0, LPWSTR a1, DWORD a2, DWORD a3, LPGUID a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSCInstallNameSpace() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSCInstallNameSpace")) == NULL) { + FATAL("cannot find entry WSCInstallNameSpace (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +int WINAPI +WSCInstallProvider(const LPGUID a0, const LPWSTR a1, const LPWSAPROTOCOL_INFOW a2, DWORD a3, LPINT a4) +{ + static int (WINAPI *fp)(const LPGUID a0, const LPWSTR a1, const LPWSAPROTOCOL_INFOW a2, DWORD a3, LPINT a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSCInstallProvider() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSCInstallProvider")) == NULL) { + FATAL("cannot find entry WSCInstallProvider (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +int WINAPI +WSCUnInstallNameSpace(LPGUID a0) +{ + static int (WINAPI *fp)(LPGUID a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSCUnInstallNameSpace() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSCUnInstallNameSpace")) == NULL) { + FATAL("cannot find entry WSCUnInstallNameSpace (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +int PASCAL +WSAAsyncSelect(SOCKET a0, HWND a1, u_int a2, long a3) +{ + static int (PASCAL *fp)(SOCKET a0, HWND a1, u_int a2, long a3); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAAsyncSelect() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAAsyncSelect")) == NULL) { + FATAL("cannot find entry WSAAsyncSelect (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3); +} + +HANDLE PASCAL +_org_WSAAsyncGetHostByAddr(HWND a0, u_int a1, const char* a2, int a3, int a4, char* a5, int a6) +{ + static HANDLE (PASCAL *fp)(HWND a0, u_int a1, const char* a2, int a3, int a4, char* a5, int a6); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub _org_WSAAsyncGetHostByAddr() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAAsyncGetHostByAddr")) == NULL) { + FATAL("cannot find entry WSAAsyncGetHostByAddr (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4, a5, a6); +} + +HANDLE PASCAL +_org_WSAAsyncGetHostByName(HWND a0, u_int a1, const char* a2, char* a3, int a4) +{ + static HANDLE (PASCAL *fp)(HWND a0, u_int a1, const char* a2, char* a3, int a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub _org_WSAAsyncGetHostByName() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAAsyncGetHostByName")) == NULL) { + FATAL("cannot find entry WSAAsyncGetHostByName (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +HANDLE PASCAL +WSAAsyncGetProtoByNumber(HWND a0, u_int a1, int a2, char* a3, int a4) +{ + static HANDLE (PASCAL *fp)(HWND a0, u_int a1, int a2, char* a3, int a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAAsyncGetProtoByNumber() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAAsyncGetProtoByNumber")) == NULL) { + FATAL("cannot find entry WSAAsyncGetProtoByNumber (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +HANDLE PASCAL +WSAAsyncGetProtoByName(HWND a0, u_int a1, const char* a2, char* a3, int a4) +{ + static HANDLE (PASCAL *fp)(HWND a0, u_int a1, const char* a2, char* a3, int a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAAsyncGetProtoByName() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAAsyncGetProtoByName")) == NULL) { + FATAL("cannot find entry WSAAsyncGetProtoByName (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +HANDLE PASCAL +WSAAsyncGetServByPort(HWND a0, u_int a1, int a2, const char* a3, char* a4, int a5) +{ + static HANDLE (PASCAL *fp)(HWND a0, u_int a1, int a2, const char* a3, char* a4, int a5); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAAsyncGetServByPort() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAAsyncGetServByPort")) == NULL) { + FATAL("cannot find entry WSAAsyncGetServByPort (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4, a5); +} + +HANDLE PASCAL +WSAAsyncGetServByName(HWND a0, u_int a1, const char* a2, const char* a3, char* a4, int a5) +{ + static HANDLE (PASCAL *fp)(HWND a0, u_int a1, const char* a2, const char* a3, char* a4, int a5); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAAsyncGetServByName() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAAsyncGetServByName")) == NULL) { + FATAL("cannot find entry WSAAsyncGetServByName (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4, a5); +} + +int PASCAL +WSACancelAsyncRequest(HANDLE a0) +{ + static int (PASCAL *fp)(HANDLE a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSACancelAsyncRequest() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSACancelAsyncRequest")) == NULL) { + FATAL("cannot find entry WSACancelAsyncRequest (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +FARPROC PASCAL +WSASetBlockingHook(FARPROC a0) +{ + static FARPROC (PASCAL *fp)(FARPROC a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSASetBlockingHook() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSASetBlockingHook")) == NULL) { + FATAL("cannot find entry WSASetBlockingHook (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0); +} + +int PASCAL +WSAUnhookBlockingHook(void) +{ + static int (PASCAL *fp)(void); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAUnhookBlockingHook() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAUnhookBlockingHook")) == NULL) { + FATAL("cannot find entry WSAUnhookBlockingHook (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(); +} + +int PASCAL +WSAGetLastError(void) +{ + static int (PASCAL *fp)(void); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAGetLastError() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAGetLastError")) == NULL) { + FATAL("cannot find entry WSAGetLastError (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(); +} + +void PASCAL +WSASetLastError(int a0) +{ + static void (PASCAL *fp)(int a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSASetLastError() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSASetLastError")) == NULL) { + FATAL("cannot find entry WSASetLastError (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + (*fp)(a0); +} + +int PASCAL +WSACancelBlockingCall(void) +{ + static int (PASCAL *fp)(void); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSACancelBlockingCall() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSACancelBlockingCall")) == NULL) { + FATAL("cannot find entry WSACancelBlockingCall (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(); +} + +BOOL PASCAL +WSAIsBlocking(void) +{ + static BOOL (PASCAL *fp)(void); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAIsBlocking() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAIsBlocking")) == NULL) { + FATAL("cannot find entry WSAIsBlocking (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(); +} + +int PASCAL +WSAStartup(WORD a0, LPWSADATA a1) +{ + static int (PASCAL *fp)(WORD a0, LPWSADATA a1); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSAStartup() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSAStartup")) == NULL) { + FATAL("cannot find entry WSAStartup (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1); +} + +int PASCAL +WSACleanup(void) +{ + static int (PASCAL *fp)(void); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSACleanup() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSACleanup")) == NULL) { + FATAL("cannot find entry WSACleanup (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(); +} + +int PASCAL +__WSAFDIsSet(SOCKET a0, fd_set* a1) +{ + static int (PASCAL *fp)(SOCKET a0, fd_set* a1); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub __WSAFDIsSet() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "__WSAFDIsSet")) == NULL) { + FATAL("cannot find entry __WSAFDIsSet (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1); +} + +int PASCAL +WEP(void) +{ + static int (PASCAL *fp)(void); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WEP() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WEP")) == NULL) { + FATAL("cannot find entry WEP (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(); +} + +int PASCAL +WSCWriteNameSpaceOrder(int a0, int a1) +{ + static int (PASCAL *fp)(int a0, int a1); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSCWriteNameSpaceOrder() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSCWriteNameSpaceOrder")) == NULL) { + FATAL("cannot find entry WSCWriteNameSpaceOrder (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1); +} + +int PASCAL +WSCWriteProviderOrder(LPDWORD a0, DWORD a1) +{ + static int (PASCAL *fp)(LPDWORD a0, DWORD a1); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSCWriteProviderOrder() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSCWriteProviderOrder")) == NULL) { + FATAL("cannot find entry WSCWriteProviderOrder (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1); +} + +int PASCAL +WSANSPIoctl(HANDLE a0, DWORD a1, LPVOID a2, DWORD a3, LPVOID a4, DWORD a5, LPDWORD a6, LPVOID a7) +{ + static int (PASCAL *fp)(HANDLE a0, DWORD a1, LPVOID a2, DWORD a3, LPVOID a4, DWORD a5, LPDWORD a6, LPVOID a7); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSANSPIoctl() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSANSPIoctl")) == NULL) { + FATAL("cannot find entry WSANSPIoctl (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4, a5, a6, a7); +} + +int PASCAL +WSCUpdateProvider(LPGUID a0, const WCHAR FAR* a1, const LPVOID a2, DWORD a3, LPINT a4) +{ + static int (PASCAL *fp)(LPGUID a0, const WCHAR FAR* a1, const LPVOID a2, DWORD a3, LPINT a4); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub WSCUpdateProvider() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "WSCUpdateProvider")) == NULL) { + FATAL("cannot find entry WSCUpdateProvider (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4); +} + +int PASCAL +_org_getaddrinfo(const char* a0, const char* a1, LPVOID a2, LPVOID a3) +{ + static int (PASCAL *fp)(const char* a0, const char* a1, LPVOID a2, LPVOID a3); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub _org_getaddrinfo() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "getaddrinfo")) == NULL) { + FATAL("cannot find entry getaddrinfo (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3); +} + +void PASCAL +_org_freeaddrinfo(LPVOID a0) +{ + static void (PASCAL *fp)(LPVOID a0); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub _org_freeaddrinfo() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "freeaddrinfo")) == NULL) { + FATAL("cannot find entry freeaddrinfo (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + (*fp)(a0); +} + +int PASCAL +_org_getnameinfo(LPVOID a0, DWORD a1, char* a2, DWORD a3, char* a4, DWORD a5, int a6) +{ + static int (PASCAL *fp)(LPVOID a0, DWORD a1, char* a2, DWORD a3, char* a4, DWORD a5, int a6); + +#ifdef DEBUG_STUB + idnLogPrintf(idn_log_level_trace, "stub _org_getnameinfo() called\n"); +#endif + if (fp == NULL) { + void *p; + if ((p = GetProcAddress(DLLHANDLE, "getnameinfo")) == NULL) { + FATAL("cannot find entry getnameinfo (%d)\n", GetLastError()); + abort(); + } + fp = p; + } + return (*fp)(a0, a1, a2, a3, a4, a5, a6); +} + diff --git a/contrib/idn/idnkit-1.0-src/wsock/wsock20/make.wnt b/contrib/idn/idnkit-1.0-src/wsock/wsock20/make.wnt new file mode 100644 index 0000000..b5283aa --- /dev/null +++ b/contrib/idn/idnkit-1.0-src/wsock/wsock20/make.wnt @@ -0,0 +1,97 @@ +# +# Makefile for WinSock Wrapper (for WinSock 2.0) +# + +# Copyright (c) 2000 Japan Network Information Center. All rights reserved. +# +# By using this file, you agree to the terms and conditions set forth bellow. +# +# LICENSE TERMS AND CONDITIONS +# +# The following License Terms and Conditions apply, unless a different +# license is obtained from Japan Network Information Center ("JPNIC"), +# a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, +# Chiyoda-ku, Tokyo 101-0047, Japan. +# +# 1. Use, Modification and Redistribution (including distribution of any +# modified or derived work) in source and/or binary forms is permitted +# under this License Terms and Conditions. +# +# 2. Redistribution of source code must retain the copyright notices as they +# appear in each source code file, this License Terms and Conditions. +# +# 3. Redistribution in binary form must reproduce the Copyright Notice, +# this License Terms and Conditions, in the documentation and/or other +# materials provided with the distribution. For the purposes of binary +# distribution the "Copyright Notice" refers to the following language: +# "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved." +# +# 4. The name of JPNIC may not be used to endorse or promote products +# derived from this Software without specific prior written approval of +# JPNIC. +# +# 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +!include <win32.mak> + +SYSLIBS = $(libcdll) kernel32.lib advapi32.lib user32.lib + +# +# Files to use +# + +HDRS = dlldef.h ..\common\wrapcommon.h +SRCS = dllmain.c dllload.obj dllfunc.c dllstub.c +OBJS = dllmain.obj dllload.obj dllfunc.obj +LIBS = ..\common\wrapcommon.lib ..\..\lib\idnkit.lib ..\..\win\iconv.lib + +cflags = $(cflags) -I..\..\include + +# +# Targets to Build +# + +TARGETS = ws2_32.dll + +all : $(TARGETS) + +ws2_32.dll : ws2_32.def $(OBJS) $(LIBS) + $(link) $(dlllflags) /OUT:ws2_32.dll /DEF:ws2_32.def $(OBJS) $(LIBS) $(SYSLIBS) + +install : $(TARGETS) + copy ws2_32.dll ..\bin + +clean : force + -del *.obj + -del *.lib + -del *.dll + -del *.exp + +# +# Dependencies +# + +dllmain.obj : dllmain.c $(HDRS) + $(cc) $(cflags) $(cvarsdll) -DDEBUG $*.c + +dllload.obj : dllload.c $(HDRS) + $(cc) $(cflags) $(cvarsdll) -DDEBUG $*.c + +dllfunc.obj : dllfunc.c dllstub.c $(HDRS) + $(cc) $(cflags) $(cvarsdll) -DDEBUG $*.c + +ws2_32o.lib : ws2_32o.def + LIB /DEF:ws2_32o.def /MACHINE:IX86 + +force: + diff --git a/contrib/idn/idnkit-1.0-src/wsock/wsock20/ws2_32.def b/contrib/idn/idnkit-1.0-src/wsock/wsock20/ws2_32.def new file mode 100644 index 0000000..ba9a44c --- /dev/null +++ b/contrib/idn/idnkit-1.0-src/wsock/wsock20/ws2_32.def @@ -0,0 +1,120 @@ +; +; Library Defition for idn wrapper's wrapper DLL +; +LIBRARY ws2_32 +DESCRIPTION "JPNIC idn warpper DLL for WS2_32" +EXPORTS + accept @1 + bind @2 + closesocket @3 + connect @4 + getpeername @5 + getsockname @6 + getsockopt @7 + htonl @8 + htons @9 + ioctlsocket @10 + inet_addr @11 + inet_ntoa @12 + listen @13 + ntohl @14 + ntohs @15 + recv @16 + recvfrom @17 + select @18 + send @19 + sendto @20 + setsockopt @21 + shutdown @22 + socket @23 + WSApSetPostRoutine @24 + WPUCompleteOverlappedRequest @25 + WSAAccept @26 + WSAAddressToStringA @27 + WSAAddressToStringW @28 + WSACloseEvent @29 + WSAConnect @30 + WSACreateEvent @31 + WSADuplicateSocketA @32 + WSADuplicateSocketW @33 + WSAEnumNameSpaceProvidersA @34 + WSAEnumNameSpaceProvidersW @35 + WSAEnumNetworkEvents @36 + WSAEnumProtocolsA @37 + WSAEnumProtocolsW @38 + WSAEventSelect @39 + WSAGetOverlappedResult @40 + WSAGetQOSByName @41 + WSAGetServiceClassInfoA @42 + WSAGetServiceClassInfoW @43 + WSAGetServiceClassNameByClassIdA @44 + WSAGetServiceClassNameByClassIdW @45 + WSAHtonl @46 + WSAHtons @47 + WSAInstallServiceClassA @48 + WSAInstallServiceClassW @49 + WSAIoctl @50 + gethostbyaddr @51 + gethostbyname @52 + getprotobyname @53 + getprotobynumber @54 + getservbyname @55 + getservbyport @56 + gethostname @57 + WSAJoinLeaf @58 + WSALookupServiceBeginA @59 + WSALookupServiceBeginW @60 + WSALookupServiceEnd @61 + WSALookupServiceNextA @62 + WSALookupServiceNextW @63 + WSANtohl @64 + WSANtohs @65 + WSAProviderConfigChange @66 + WSARecv @67 + WSARecvDisconnect @68 + WSARecvFrom @69 + WSARemoveServiceClass @70 + WSAResetEvent @71 + WSASend @72 + WSASendDisconnect @73 + WSASendTo @74 + WSASetEvent @75 + WSASetServiceA @76 + WSASetServiceW @77 + WSASocketA @78 + WSASocketW @79 + WSAStringToAddressA @80 + WSAStringToAddressW @81 + WSAWaitForMultipleEvents @82 + WSCDeinstallProvider @83 + WSCEnableNSProvider @84 + WSCEnumProtocols @85 + WSCGetProviderPath @86 + WSCInstallNameSpace @87 + WSCInstallProvider @88 + WSCUnInstallNameSpace @89 + WSCWriteNameSpaceOrder @90 + WSCWriteProviderOrder @91 + freeaddrinfo @94 + getaddrinfo @95 + getnameinfo @96 + WSAAsyncSelect @101 + WSAAsyncGetHostByAddr @102 + WSAAsyncGetHostByName @103 + WSAAsyncGetProtoByNumber @104 + WSAAsyncGetProtoByName @105 + WSAAsyncGetServByPort @106 + WSAAsyncGetServByName @107 + WSACancelAsyncRequest @108 + WSASetBlockingHook @109 + WSAUnhookBlockingHook @110 + WSAGetLastError @111 + WSASetLastError @112 + WSACancelBlockingCall @113 + WSAIsBlocking @114 + WSAStartup @115 + WSACleanup @116 + __WSAFDIsSet @151 + WEP @500 + WSANSPIoctl @600 + WSCUpdateProvider @601 |