This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author sbt
Recipients sbt
Date 2012-03-14.12:59:45
SpamBayes Score 1.3412695e-08
Marked as misclassified No
Message-id <1331729986.5.0.388536898962.issue14300@psf.upfronthosting.co.za>
In-reply-to
Content
According to Microsoft's documentation sockets created using socket() have the
overlapped attribute, but sockets created with WSASocket() do not unless you 
pass the WSA_FLAG_OVERLAPPED flag.  The documentation for WSADuplicateSocket()
says

  If the source process uses the socket function to create the socket, the 
  destination process must pass the WSA_FLAG_OVERLAPPED flag to its WSASocket 
  function call.

This means that dup_socket() in socketmodule.c should use

    return WSASocket(FROM_PROTOCOL_INFO, FROM_PROTOCOL_INFO,
                     FROM_PROTOCOL_INFO, &info, 0, WSA_FLAG_OVERLAPPED);

instead of

    return WSASocket(FROM_PROTOCOL_INFO, FROM_PROTOCOL_INFO,
                     FROM_PROTOCOL_INFO, &info, 0, 0);

(On Windows, the new multiprocessing.connection.wait() function depends on
the overlapped attribute, although it is primarily intended for use with pipe 
connections not sockets.)

Patch attached.
History
Date User Action Args
2012-03-14 12:59:46sbtsetrecipients: + sbt
2012-03-14 12:59:46sbtsetmessageid: <1331729986.5.0.388536898962.issue14300@psf.upfronthosting.co.za>
2012-03-14 12:59:45sbtlinkissue14300 messages
2012-03-14 12:59:45sbtcreate