Fix Issue9753: socket.dup() does not always work right on Windows
This commit is contained in:
parent
06a3c8ae82
commit
6c765284a3
@ -155,6 +155,9 @@ Extensions
|
||||
Library
|
||||
-------
|
||||
|
||||
- Issue #9753: Fixed socket.dup, which did not always work correctly
|
||||
on Windows.
|
||||
|
||||
- Issue #7005: Fixed output of None values for RawConfigParser.write and
|
||||
ConfigParser.write.
|
||||
|
||||
|
@ -351,16 +351,13 @@ const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);
|
||||
static SOCKET
|
||||
dup_socket(SOCKET handle)
|
||||
{
|
||||
HANDLE newhandle;
|
||||
WSAPROTOCOL_INFO info;
|
||||
|
||||
if (!DuplicateHandle(GetCurrentProcess(), (HANDLE)handle,
|
||||
GetCurrentProcess(), &newhandle,
|
||||
0, FALSE, DUPLICATE_SAME_ACCESS))
|
||||
{
|
||||
WSASetLastError(GetLastError());
|
||||
if (WSADuplicateSocket(handle, GetCurrentProcessId(), &info))
|
||||
return INVALID_SOCKET;
|
||||
}
|
||||
return (SOCKET)newhandle;
|
||||
|
||||
return WSASocket(FROM_PROTOCOL_INFO, FROM_PROTOCOL_INFO,
|
||||
FROM_PROTOCOL_INFO, &info, 0, 0);
|
||||
}
|
||||
#define SOCKETCLOSE closesocket
|
||||
#else
|
||||
|
Loading…
x
Reference in New Issue
Block a user