#include <catalog.h>
#include <handle.h>
-
/*
* @implemented
*/
return SOCKET_ERROR;
}
- if (!ReferenceProviderByHandle((HANDLE)s, &Provider))
+ if (!ReferenceProviderByHandle((HANDLE)(ULONG_PTR)(s), &Provider))
{
WSASetLastError(WSAENOTSOCK);
return SOCKET_ERROR;
return SOCKET_ERROR;
}
+ if(IS_INTRESOURCE(optval))
+ {
+ SetLastError(WSAEFAULT);
+ return SOCKET_ERROR;
+ }
+
if (!ReferenceProviderByHandle((HANDLE)s, &Provider))
{
WSASetLastError(WSAENOTSOCK);
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
{
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
{
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
{
UNIMPLEMENTED
+ WSASetLastError(WSASYSCALLFAILURE);
return FALSE;
}
{
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
IN USHORT hostshort,
OUT USHORT FAR* lpnetshort)
{
- UNIMPLEMENTED
+ PCATALOG_ENTRY provider;
+ if (!WSAINITIALIZED)
+ {
+ WSASetLastError(WSANOTINITIALISED);
+ return SOCKET_ERROR;
+ }
+ 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;
}
{
UNIMPLEMENTED
+ WSASetLastError(WSASYSCALLFAILURE);
return INVALID_SOCKET;
}
{
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
IN USHORT netshort,
OUT USHORT FAR* lphostshort)
{
- UNIMPLEMENTED
+ PCATALOG_ENTRY provider;
+ if (!WSAINITIALIZED)
+ {
+ WSASetLastError(WSANOTINITIALISED);
+ return SOCKET_ERROR;
+ }
+
+ 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;
}
{
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
{
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
/* WinSock Service Provider support functions */
{
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
{
UNIMPLEMENTED
- return 0;
+ return WSASYSCALLFAILURE;
}
{
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
{
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
{
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
*/
INT
EXPORT
-WSCInstallProvider(IN CONST LPGUID lpProviderId,
- IN CONST LPWSTR lpszProviderDllPath,
+WSCInstallProvider(IN LPGUID lpProviderId,
+ IN CONST WCHAR* lpszProviderDllPath,
IN CONST LPWSAPROTOCOL_INFOW lpProtocolInfoList,
IN DWORD dwNumberOfEntries,
OUT LPINT lpErrno)
{
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
{
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
{
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
{
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
{
UNIMPLEMENTED
- return 0;
+ return WSASYSCALLFAILURE;
}
/*
LPDWORD lpcbBytesReturned,
LPWSACOMPLETION lpCompletion)
{
- //UNIMPLEMENTED
+ UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
{
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
/*
{
UNIMPLEMENTED
- return 0;
-}
-
-/*
- * @unimplemented
- */
-VOID
-EXPORT
-freeaddrinfo(struct addrinfo *pAddrInfo)
-{
- UNIMPLEMENTED
-}
-
-/*
- * @unimplemented
- */
-INT
-EXPORT
-getaddrinfo(const char FAR * nodename,
- const char FAR * servname,
- const struct addrinfo FAR * hints,
- struct addrinfo FAR * FAR * res)
-{
- UNIMPLEMENTED
-
- return 0;
+ return WSASYSCALLFAILURE;
}
/*
{
UNIMPLEMENTED
- return 0;
+ WSASetLastError(WSASYSCALLFAILURE);
+ return SOCKET_ERROR;
}
/*
{
UNIMPLEMENTED
- return 0;
+ return FALSE;
}
+/*
+ * @unimplemented
+ */
+INT
+EXPORT
+GetAddrInfoW(IN PCWSTR pszNodeName,
+ IN PCWSTR pszServiceName,
+ IN const ADDRINFOW *ptHints,
+ OUT PADDRINFOW *pptResult)
+{
+ UNIMPLEMENTED
+
+ WSASetLastError(EAI_FAIL);
+ return EAI_FAIL;
+}
+
+
/* EOF */