mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 22:46:17 +00:00
[MSWSOCK] Unstub AcceptEx and GetAcceptExSockaddrs. Note that real implementation in msafd is not available, so result will still be FALSE
svn path=/trunk/; revision=74731
This commit is contained in:
parent
cc95312078
commit
0c26c6fe3f
2 changed files with 106 additions and 59 deletions
|
@ -12,6 +12,9 @@
|
|||
#include <winsock2.h>
|
||||
#include <mswsock.h>
|
||||
|
||||
LPFN_TRANSMITFILE pfnTransmitFile = NULL;
|
||||
LPFN_GETACCEPTEXSOCKADDRS pfnGetAcceptExSockaddrs = NULL;
|
||||
LPFN_ACCEPTEX pfnAcceptEx = NULL;
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
|
@ -25,30 +28,111 @@ TransmitFile(SOCKET Socket,
|
|||
LPTRANSMIT_FILE_BUFFERS TransmitBuffers,
|
||||
DWORD Flags)
|
||||
{
|
||||
static GUID TransmitFileGUID = WSAID_TRANSMITFILE;
|
||||
LPFN_TRANSMITFILE pfnTransmitFile;
|
||||
DWORD cbBytesReturned;
|
||||
GUID TransmitFileGUID = WSAID_TRANSMITFILE;
|
||||
DWORD cbBytesReturned;
|
||||
|
||||
if (WSAIoctl(Socket,
|
||||
SIO_GET_EXTENSION_FUNCTION_POINTER,
|
||||
&TransmitFileGUID,
|
||||
sizeof(TransmitFileGUID),
|
||||
&pfnTransmitFile,
|
||||
sizeof(pfnTransmitFile),
|
||||
&cbBytesReturned,
|
||||
NULL,
|
||||
NULL) == SOCKET_ERROR)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
if (WSAIoctl(Socket,
|
||||
SIO_GET_EXTENSION_FUNCTION_POINTER,
|
||||
&TransmitFileGUID,
|
||||
sizeof(TransmitFileGUID),
|
||||
&pfnTransmitFile,
|
||||
sizeof(pfnTransmitFile),
|
||||
&cbBytesReturned,
|
||||
NULL,
|
||||
NULL) == SOCKET_ERROR)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return pfnTransmitFile(Socket,
|
||||
File,
|
||||
NumberOfBytesToWrite,
|
||||
NumberOfBytesPerSend,
|
||||
Overlapped,
|
||||
TransmitBuffers,
|
||||
Flags);
|
||||
return pfnTransmitFile(Socket,
|
||||
File,
|
||||
NumberOfBytesToWrite,
|
||||
NumberOfBytesPerSend,
|
||||
Overlapped,
|
||||
TransmitBuffers,
|
||||
Flags);
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
BOOL
|
||||
WINAPI
|
||||
AcceptEx(SOCKET ListenSocket,
|
||||
SOCKET AcceptSocket,
|
||||
PVOID OutputBuffer,
|
||||
DWORD ReceiveDataLength,
|
||||
DWORD LocalAddressLength,
|
||||
DWORD RemoteAddressLength,
|
||||
LPDWORD BytesReceived,
|
||||
LPOVERLAPPED Overlapped)
|
||||
{
|
||||
GUID AcceptExGUID = WSAID_ACCEPTEX;
|
||||
GUID GetAcceptExSockaddrsGUID = WSAID_GETACCEPTEXSOCKADDRS;
|
||||
DWORD cbBytesReturned;
|
||||
|
||||
if (WSAIoctl(ListenSocket,
|
||||
SIO_GET_EXTENSION_FUNCTION_POINTER,
|
||||
&AcceptExGUID,
|
||||
sizeof(AcceptExGUID),
|
||||
&pfnAcceptEx,
|
||||
sizeof(pfnAcceptEx),
|
||||
&cbBytesReturned,
|
||||
NULL,
|
||||
NULL) == SOCKET_ERROR)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (WSAIoctl(ListenSocket,
|
||||
SIO_GET_EXTENSION_FUNCTION_POINTER,
|
||||
&GetAcceptExSockaddrsGUID,
|
||||
sizeof(GetAcceptExSockaddrsGUID),
|
||||
&pfnGetAcceptExSockaddrs,
|
||||
sizeof(pfnGetAcceptExSockaddrs),
|
||||
&cbBytesReturned,
|
||||
NULL,
|
||||
NULL) == SOCKET_ERROR)
|
||||
{
|
||||
pfnAcceptEx = NULL;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return pfnAcceptEx(ListenSocket,
|
||||
AcceptSocket,
|
||||
OutputBuffer,
|
||||
ReceiveDataLength,
|
||||
LocalAddressLength,
|
||||
RemoteAddressLength,
|
||||
BytesReceived,
|
||||
Overlapped);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
VOID
|
||||
WINAPI
|
||||
GetAcceptExSockaddrs(PVOID OutputBuffer,
|
||||
DWORD ReceiveDataLength,
|
||||
DWORD LocalAddressLength,
|
||||
DWORD RemoteAddressLength,
|
||||
LPSOCKADDR* LocalSockaddr,
|
||||
LPINT LocalSockaddrLength,
|
||||
LPSOCKADDR* RemoteSockaddr,
|
||||
LPINT RemoteSockaddrLength)
|
||||
{
|
||||
if (pfnGetAcceptExSockaddrs)
|
||||
{
|
||||
pfnGetAcceptExSockaddrs(OutputBuffer,
|
||||
ReceiveDataLength,
|
||||
LocalAddressLength,
|
||||
RemoteAddressLength,
|
||||
LocalSockaddr,
|
||||
LocalSockaddrLength,
|
||||
RemoteSockaddr,
|
||||
RemoteSockaddrLength);
|
||||
}
|
||||
}
|
||||
/* EOF */
|
||||
|
|
|
@ -21,25 +21,6 @@ typedef struct _NS_ROUTINE {
|
|||
DWORD dwPriority;
|
||||
} NS_ROUTINE, *PNS_ROUTINE, * FAR LPNS_ROUTINE;
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
BOOL
|
||||
WINAPI
|
||||
AcceptEx(SOCKET ListenSocket,
|
||||
SOCKET AcceptSocket,
|
||||
PVOID OutputBuffer,
|
||||
DWORD ReceiveDataLength,
|
||||
DWORD LocalAddressLength,
|
||||
DWORD RemoteAddressLength,
|
||||
LPDWORD BytesReceived,
|
||||
LPOVERLAPPED Overlapped)
|
||||
{
|
||||
OutputDebugStringW(L"w32sock AcceptEx stub called\n");
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
|
@ -71,24 +52,6 @@ EnumProtocolsW(LPINT ProtocolCount,
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID
|
||||
WINAPI
|
||||
GetAcceptExSockaddrs(PVOID OutputBuffer,
|
||||
DWORD ReceiveDataLength,
|
||||
DWORD LocalAddressLength,
|
||||
DWORD RemoteAddressLength,
|
||||
LPSOCKADDR* LocalSockaddr,
|
||||
LPINT LocalSockaddrLength,
|
||||
LPSOCKADDR* RemoteSockaddr,
|
||||
LPINT RemoteSockaddrLength)
|
||||
{
|
||||
OutputDebugStringW(L"w32sock GetAcceptExSockaddrs stub called\n");
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue