Kaydet (Commit) c580dae6 authored tarafından Guido van Rossum's avatar Guido van Rossum

Fix a problem reported by Oleg Broytmann, who complains that very

often, ftp URLs hang in the final close.  Further analysis suggests
that this is because the close hook in addclosehook() calls the hook
before acually closing the connection.  The hook, in this case, waits
for the '226 Transfer complete' status from the server on the command
socket.  However, more and more ftp servers only send this status when
the data socket has actually been closed -- causing a deadlock.

The fix is simple: in addclosehook.close(), call addbase.close()
*before* calling the closehook.
üst a570c059
......@@ -726,11 +726,11 @@ class addclosehook(addbase):
self.hookargs = hookargs
def close(self):
addbase.close(self)
if self.closehook:
apply(self.closehook, self.hookargs)
self.closehook = None
self.hookargs = None
addbase.close(self)
class addinfo(addbase):
"""class to add an info() method to an open file."""
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment