Index: nspr/pr/src/md/windows/w95sock.c |
=================================================================== |
--- nspr/pr/src/md/windows/w95sock.c (revision 233722) |
+++ nspr/pr/src/md/windows/w95sock.c (working copy) |
@@ -21,60 +21,6 @@ |
/* --- SOCKET IO --------------------------------------------------------- */ |
-/* |
- * we only want to call WSAIoctl() on Vista and later |
- * so don't pay for it at build time (and avoid including winsock2.h) |
- */ |
- |
-/* from ws2def.h */ |
-#define IOC_IN 0x80000000 /* copy in parameters */ |
-#define IOC_VENDOR 0x18000000 |
-#define _WSAIOW(x,y) (IOC_IN|(x)|(y)) |
-/* from MSWSockDef.h */ |
-#define SIO_SET_COMPATIBILITY_MODE _WSAIOW(IOC_VENDOR,300) |
- |
-typedef enum _WSA_COMPATIBILITY_BEHAVIOR_ID { |
- WsaBehaviorAll = 0, |
- WsaBehaviorReceiveBuffering, |
- WsaBehaviorAutoTuning |
-} WSA_COMPATIBILITY_BEHAVIOR_ID, *PWSA_COMPATIBILITY_BEHAVIOR_ID; |
- |
-/* from sdkddkver.h */ |
-#define NTDDI_WIN6 0x06000000 /* Windows Vista */ |
- |
-/* from winsock2.h */ |
-#define WSAEVENT HANDLE |
- |
-#define WSAOVERLAPPED OVERLAPPED |
-typedef struct _OVERLAPPED * LPWSAOVERLAPPED; |
- |
-typedef void (CALLBACK * LPWSAOVERLAPPED_COMPLETION_ROUTINE)( |
- IN DWORD dwError, |
- IN DWORD cbTransferred, |
- IN LPWSAOVERLAPPED lpOverlapped, |
- IN DWORD dwFlags |
-); |
- |
-typedef int (__stdcall * WSAIOCTLPROC) ( |
- SOCKET s, |
- DWORD dwIoControlCode, |
- LPVOID lpvInBuffer, |
- DWORD cbInBuffer, |
- LPVOID lpvOutBuffer, |
- DWORD cbOutBuffer, |
- LPDWORD lpcbBytesReturned, |
- LPWSAOVERLAPPED lpOverlapped, |
- LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine |
-); |
- |
-typedef struct _WSA_COMPATIBILITY_MODE { |
- WSA_COMPATIBILITY_BEHAVIOR_ID BehaviorId; |
- ULONG TargetOsVersion; |
-} WSA_COMPATIBILITY_MODE, *PWSA_COMPATIBILITY_MODE; |
- |
-static HMODULE libWinsock2 = NULL; |
-static WSAIOCTLPROC wsaioctlProc = NULL; |
-static PRBool socketSetCompatMode = PR_FALSE; |
static PRBool socketFixInet6RcvBuf = PR_FALSE; |
void _PR_MD_InitSockets(void) |
@@ -85,22 +31,8 @@ |
osvi.dwOSVersionInfoSize = sizeof(osvi); |
GetVersionEx(&osvi); |
- /* if Vista or later... */ |
- if (osvi.dwMajorVersion >= 6) |
+ if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1) |
{ |
- libWinsock2 = LoadLibraryW(L"Ws2_32.dll"); |
- if (libWinsock2) |
- { |
- wsaioctlProc = (WSAIOCTLPROC)GetProcAddress(libWinsock2, |
- "WSAIoctl"); |
- if (wsaioctlProc) |
- { |
- socketSetCompatMode = PR_TRUE; |
- } |
- } |
- } |
- else if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1) |
- { |
/* if Windows XP (32-bit) */ |
socketFixInet6RcvBuf = PR_TRUE; |
} |
@@ -108,13 +40,7 @@ |
void _PR_MD_CleanupSockets(void) |
{ |
- socketSetCompatMode = PR_FALSE; |
- wsaioctlProc = NULL; |
- if (libWinsock2) |
- { |
- FreeLibrary(libWinsock2); |
- libWinsock2 = NULL; |
- } |
+ socketFixInet6RcvBuf = PR_FALSE; |
} |
PROsfd |
@@ -141,29 +67,6 @@ |
return -1; |
} |
- if ((af == AF_INET || af == AF_INET6) && |
- type == SOCK_STREAM && socketSetCompatMode) |
- { |
- WSA_COMPATIBILITY_MODE mode; |
- char dummy[4]; |
- int ret_dummy; |
- |
- mode.BehaviorId = WsaBehaviorAutoTuning; |
- mode.TargetOsVersion = NTDDI_WIN6; |
- if (wsaioctlProc(sock, SIO_SET_COMPATIBILITY_MODE, |
- (char *)&mode, sizeof(mode), |
- dummy, 4, &ret_dummy, 0, NULL) == SOCKET_ERROR) |
- { |
- int err = WSAGetLastError(); |
- PR_LOG(_pr_io_lm, PR_LOG_DEBUG, ("WSAIoctl() failed with %d", err)); |
- |
- /* SIO_SET_COMPATIBILITY_MODE may not be supported. |
- ** If the call to WSAIoctl() fails with WSAEOPNOTSUPP, |
- ** don't close the socket. |
- */ |
- } |
- } |
- |
if (af == AF_INET6 && socketFixInet6RcvBuf) |
{ |
int bufsize; |