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 aimacintyre
Recipients
Date 2002-08-04.07:09:42
SpamBayes Score
Marked as misclassified
Message-id
In-reply-to
Content
Logged In: YES 
user_id=250749

After discussing the OS/2 issues privately with Michael, the
outstanding issues are resolved with the socketmodule.c and
test_socket.py patches I've uploaded here.

socketmodule.c.nb-connect.diff:
in the non-blocking connect, OS/2 is returning EINPROGRESS
from the initial connection attempt, and after the
internal_select(), the subsequent connection attempt returns
EISCONN.
this appears to be perfectly legitimate, although FreeBSD
and Linux haven't been seen to return the EINPROGRESS.
the patch adds specific handling for the EISCONN after
EINPROGRESS case, matching the semantics already in place
for the Windows version of the code.

test_socket.py.sendall.diff:
the existing sendall() test is flawed as the recv() call
makes no guarantees about waiting for all the data requested.
OS/2 required a 100ms sleep in the recv loop to get all the
data.
rewriting the reciev test to allow for recv() not waiting
for data still in transit is more correct.

Note that these interpretations of "correctness" have been
based on FreeBSD manpages, which is the only sockets
documentation I currently have.

If these are acceptable to Guido, and Michael gets to test
them on Linux, I can relieve Guido of committing them and
closing this patch.
History
Date User Action Args
2007-08-23 15:13:14adminlinkissue555085 messages
2007-08-23 15:13:14admincreate