mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 09:25:10 +00:00
Work on ioctlsocket and WSAIoctl.
svn path=/trunk/; revision=7869
This commit is contained in:
parent
3360515771
commit
5f474aea89
2 changed files with 59 additions and 38 deletions
|
@ -463,6 +463,20 @@ accept(
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
INT
|
||||
EXPORT
|
||||
ioctlsocket(
|
||||
IN SOCKET s,
|
||||
IN LONG cmd,
|
||||
IN OUT ULONG FAR* argp)
|
||||
{
|
||||
return WSAIoctl(s, cmd, argp, sizeof(ULONG), argp, sizeof(ULONG), argp, 0, 0);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
|
@ -562,6 +576,51 @@ WSAConnect(
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
INT
|
||||
EXPORT
|
||||
WSAIoctl(
|
||||
IN SOCKET s,
|
||||
IN DWORD dwIoControlCode,
|
||||
IN LPVOID lpvInBuffer,
|
||||
IN DWORD cbInBuffer,
|
||||
OUT LPVOID lpvOutBuffer,
|
||||
IN DWORD cbOutBuffer,
|
||||
OUT LPDWORD lpcbBytesReturned,
|
||||
IN LPWSAOVERLAPPED lpOverlapped,
|
||||
IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)
|
||||
{
|
||||
PCATALOG_ENTRY Provider;
|
||||
INT Status;
|
||||
INT Errno;
|
||||
|
||||
if (!WSAINITIALIZED) {
|
||||
WSASetLastError(WSANOTINITIALISED);
|
||||
return SOCKET_ERROR;
|
||||
}
|
||||
|
||||
if (!ReferenceProviderByHandle((HANDLE)s, &Provider)) {
|
||||
WSASetLastError(WSAENOTSOCK);
|
||||
return SOCKET_ERROR;
|
||||
}
|
||||
|
||||
Status = Provider->ProcTable.lpWSPIoctl(
|
||||
s, dwIoControlCode, lpvInBuffer, cbInBuffer, lpvOutBuffer,
|
||||
cbOutBuffer, lpcbBytesReturned, lpOverlapped, lpCompletionRoutine,
|
||||
NULL /* lpThreadId */, &Errno);
|
||||
|
||||
DereferenceProviderByPointer(Provider);
|
||||
|
||||
if (Status == SOCKET_ERROR) {
|
||||
WSASetLastError(Errno);
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
DllMain(HANDLE hInstDll,
|
||||
|
|
|
@ -143,22 +143,6 @@ getsockopt(
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
INT
|
||||
EXPORT
|
||||
ioctlsocket(
|
||||
IN SOCKET s,
|
||||
IN LONG cmd,
|
||||
IN OUT ULONG FAR* argp)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
|
@ -531,28 +515,6 @@ WSAHtons(
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
INT
|
||||
EXPORT
|
||||
WSAIoctl(
|
||||
IN SOCKET s,
|
||||
IN DWORD dwIoControlCode,
|
||||
IN LPVOID lpvInBuffer,
|
||||
IN DWORD cbInBuffer,
|
||||
OUT LPVOID lpvOutBuffer,
|
||||
IN DWORD cbOutBuffer,
|
||||
OUT LPDWORD lpcbBytesReturned,
|
||||
IN LPWSAOVERLAPPED lpOverlapped,
|
||||
IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue