Message120620
http://code.google.com/p/pyftpdlib/issues/detail?id=143
This comes from a user who sent me a report via e-mail. Unfortunately I don't have an OSX box to test against.
Code which should replicate the problem is this:
import socket, struct
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack('ii', 1, 0))
s.connect(('localhost', 21))
s.close()
...while this is a fix I think it should work:
Index: Lib/asyncore.py
===================================================================
--- Lib/asyncore.py (revisione 86084)
+++ Lib/asyncore.py (copia locale)
@@ -242,7 +242,7 @@
try:
self.addr = sock.getpeername()
except socket.error, err:
- if err.args[0] == ENOTCONN:
+ if err.args[0] in (ENOTCONN, EINVAL):
# To handle the case where we got an unconnected
# socket.
self.connected = False
Nosying ixokai as I know he has an OSX box to test against.
Setting "high" priority and type == "security" as asyncore-based servers are likely to crash because of this.
It might even make sense to backport the fix in Python 2.6 because of the security implications. |
|
Date |
User |
Action |
Args |
2010-11-06 14:56:32 | giampaolo.rodola | set | recipients:
+ giampaolo.rodola, ixokai |
2010-11-06 14:56:32 | giampaolo.rodola | set | messageid: <1289055392.69.0.485144076522.issue10340@psf.upfronthosting.co.za> |
2010-11-06 14:56:29 | giampaolo.rodola | link | issue10340 messages |
2010-11-06 14:56:28 | giampaolo.rodola | create | |
|