mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-29 19:26:33 +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:
@@ -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
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user