Message40015
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. |
|
Date |
User |
Action |
Args |
2007-08-23 15:13:14 | admin | link | issue555085 messages |
2007-08-23 15:13:14 | admin | create | |
|