1 /* Copyright (c) 2008 Twisted Matrix Laboratories.
2 * See LICENSE for details.
11 #ifndef WSAID_CONNECTEX
12 #define WSAID_CONNECTEX {0x25a207b9,0xddf3,0x4660,{0x8e,0xe9,0x76,0xe5,0x8c,0x74,0x06,0x3e}}
14 #ifndef WSAID_GETACCEPTEXSOCKADDRS
15 #define WSAID_GETACCEPTEXSOCKADDRS {0xb5367df2,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
17 #ifndef WSAID_ACCEPTEX
18 #define WSAID_ACCEPTEX {0xb5367df1,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
20 /*#ifndef WSAID_TRANSMITFILE
21 #define WSAID_TRANSMITFILE {0xb5367df0,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
25 void *lpAcceptEx, *lpGetAcceptExSockaddrs, *lpConnectEx, *lpTransmitFile;
27 int initPointer(SOCKET s, void **fun, GUID guid) {
32 res = WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER,
39 int initWinsockPointers() {
40 SOCKET s = socket(AF_INET, SOCK_STREAM, 0);
42 GUID guid1 = WSAID_ACCEPTEX;
43 GUID guid2 = WSAID_GETACCEPTEXSOCKADDRS;
44 GUID guid3 = WSAID_CONNECTEX;
45 /*GUID guid4 = WSAID_TRANSMITFILE;*/
49 if (!initPointer(s, &lpAcceptEx, guid1))
53 if (!initPointer(s, &lpGetAcceptExSockaddrs, guid2)) {
56 if (!initPointer(s, &lpConnectEx, guid3)) {
59 /*initPointer(s, &lpTransmitFile, guid4);*/