mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 04:13:34 +00:00
- Implement WSAHtons, WSANtohs
- Add some cases to MsafdReturnWithErrno, SockAsyncSelectCompletionRoutine Opera loads pages now, but the keyboard does not work. Patch by Mikhail Denisenko ([email protected]) See issue #4151 for more details. svn path=/trunk/; revision=42102
This commit is contained in:
@@ -341,6 +341,10 @@ DWORD MsafdReturnWithErrno(NTSTATUS Status,
|
||||
DbgPrint("MSAFD: STATUS_INVALID_CONNECTION\n");
|
||||
*Errno = WSAEAFNOSUPPORT;
|
||||
break;
|
||||
case STATUS_INVALID_ADDRESS:
|
||||
DbgPrint("MSAFD: STATUS_INVALID_ADDRESS\n");
|
||||
*Errno = WSAEADDRNOTAVAIL;
|
||||
break;
|
||||
case STATUS_REMOTE_NOT_LISTENING:
|
||||
DbgPrint("MSAFD: STATUS_REMOTE_NOT_LISTENING\n");
|
||||
*Errno = WSAECONNREFUSED;
|
||||
@@ -2289,6 +2293,7 @@ VOID SockAsyncSelectCompletionRoutine(PVOID Context, PIO_STATUS_BLOCK IoStatusBl
|
||||
|
||||
/* FIXME: THIS IS NOT RIGHT!!! HACK HACK HACK! */
|
||||
case AFD_EVENT_CONNECT:
|
||||
case AFD_EVENT_CONNECT_FAIL:
|
||||
if (0 != (Socket->SharedData.AsyncEvents & FD_CONNECT) &&
|
||||
0 == (Socket->SharedData.AsyncDisabledEvents & FD_CONNECT))
|
||||
{
|
||||
|
||||
@@ -510,10 +510,33 @@ WSAHtons(IN SOCKET s,
|
||||
IN USHORT hostshort,
|
||||
OUT USHORT FAR* lpnetshort)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
if (!WSAINITIALIZED)
|
||||
{
|
||||
WSASetLastError(WSANOTINITIALISED);
|
||||
return SOCKET_ERROR;
|
||||
}
|
||||
|
||||
WSASetLastError(WSASYSCALLFAILURE);
|
||||
return SOCKET_ERROR;
|
||||
PCATALOG_ENTRY provider;
|
||||
if (!ReferenceProviderByHandle((HANDLE)s, &provider))
|
||||
{
|
||||
WSASetLastError(WSAENOTSOCK);
|
||||
return SOCKET_ERROR;
|
||||
}
|
||||
|
||||
switch (provider->ProtocolInfo.iNetworkByteOrder)
|
||||
{
|
||||
case BIGENDIAN:
|
||||
*lpnetshort = htons(hostshort);
|
||||
break;
|
||||
case LITTLEENDIAN:
|
||||
#ifdef LE
|
||||
*lpnetshort = hostshort;
|
||||
#else
|
||||
*lpnetshort = (((hostshort & 0xFF00) >> 8) | ((hostshort & 0x00FF) << 8));
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -576,10 +599,33 @@ WSANtohs(IN SOCKET s,
|
||||
IN USHORT netshort,
|
||||
OUT USHORT FAR* lphostshort)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
if (!WSAINITIALIZED)
|
||||
{
|
||||
WSASetLastError(WSANOTINITIALISED);
|
||||
return SOCKET_ERROR;
|
||||
}
|
||||
|
||||
WSASetLastError(WSASYSCALLFAILURE);
|
||||
return SOCKET_ERROR;
|
||||
PCATALOG_ENTRY provider;
|
||||
if (!ReferenceProviderByHandle((HANDLE)s, &provider))
|
||||
{
|
||||
WSASetLastError(WSAENOTSOCK);
|
||||
return SOCKET_ERROR;
|
||||
}
|
||||
|
||||
switch (provider->ProtocolInfo.iNetworkByteOrder)
|
||||
{
|
||||
case BIGENDIAN:
|
||||
*lphostshort = ntohs(netshort);
|
||||
break;
|
||||
case LITTLEENDIAN:
|
||||
#ifdef LE
|
||||
*lphostshort = netshort;
|
||||
#else
|
||||
*lphostshort = (((netshort & 0xFF00) >> 8) | ((netshort & 0x00FF) << 8));
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user