urllib/ftpwrapper

Oleg Broytmann phd at phd.russ.ru
Sat May 20 08:29:00 EDT 2000


Hi!

   Thanks! I'll test it and report sometime next week.

On Sat, 20 May 2000, Guido van Rossum wrote:
> Oleg Broytmann <phd at phd.russ.ru> writes:
> > 
> > fname, headers = urllib.urlretrieve("ftp://starship.python.net/")
> > 
> >    and it hangs :( Almost all FTP URLs will hang

> I played with this a bit and found that ftp.python.org works but
> starship.python.net hangs...  Then I had a sudden idea: maybe these
> ftp daemons only send the 226 message once the data socket has been
> closed!
> 
> The following change works for me: in urllib.py, class addclosehook,
> method close(), move the call addbase.close(self) to the top of the
> method, so the data socket gets closed before the hook (which waits
> for the 226 code on the control socket) is called.
> 
>     def close(self):
>         addbase.close(self)
>         if self.closehook:
>             apply(self.closehook, self.hookargs)
>             self.closehook = None
>             self.hookargs = None
> 
> Let me know if this fixes your problem (with no other changes to
> urllib).

Oleg.            (All opinions are mine and not of my employer)
---- 
    Oleg Broytmann      Foundation for Effective Policies      phd at phd.russ.ru
           Programmers don't die, they just GOSUB without RETURN.





More information about the Python-list mailing list