[Python-bugs-list] [ python-Bugs-532007 ] urllib ftp broken if Win32 proxy

SourceForge.net noreply@sourceforge.net
Mon, 24 Feb 2003 13:01:13 -0800


Bugs item #532007, was opened at 2002-03-19 20:36
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=532007&group_id=5470

Category: Python Library
Group: Python 2.2
Status: Open
Resolution: None
Priority: 5
Submitted By: David Medberry (medberry)
Assigned to: Nobody/Anonymous (nobody)
Summary: urllib ftp broken if Win32 proxy

Initial Comment:
If Win32 has a proxy enabled, ftp urls will NOT work in
urllib.

Here is a trace:
Traceback (most recent call last):
  File
"C:\Python22\lib\site-packages\Pythonwin\pywin\framework\scriptutils.py",
line 301, in RunScript
    exec codeObject in __main__.__dict__
  File "C:\Python22\Lib\urllib.py", line 1457, in ?
    main()
  File "C:\Python22\Lib\urllib.py", line 1448, in main
    test(args)
  File "C:\Python22\Lib\urllib.py", line 1410, in test
    fn, h = urlretrieve(url, None, reporthook)
  File "C:\Python22\Lib\urllib.py", line 80, in urlretrieve
    return _urlopener.retrieve(url, filename,
reporthook, data)
  File "C:\Python22\Lib\urllib.py", line 210, in retrieve
    fp = self.open(url, data)
  File "C:\Python22\Lib\urllib.py", line 178, in open
    return getattr(self, name)(url)
  File "C:\Python22\Lib\urllib.py", line 438, in open_ftp
    host, path = splithost(url)
  File "C:\Python22\Lib\urllib.py", line 944, in splithost
    match = _hostprog.match(url)
TypeError: expected string or buffer

If the Win32 proxy is removed, it resumes working. In
urllib splithost, url is None or an empty tuple
(instead of the actual url.)

To reproduce, just enable a proxy on Win32 and execute
the "urllib.py -t" selftest. Disable the proxy and it
will be restored.

I haven't got the setup to check if web_proxy or
ftp_proxy on Posix machines causes the same problem.



----------------------------------------------------------------------

Comment By: Bram Moolenaar (vimboss)
Date: 2003-02-24 22:01

Message:
Logged In: YES 
user_id=57665

Problem is that open_ftp() does not check if the "url"
argument is a string or a tuple.  When ftp_proxy is set it
is a tuple, thus always causes the open() call to fail. 
This is not specific for Win32.

open_http() starts with this check:
       if type(url) is types.StringType:
open_ftp() should do something similar.

This is unrelated to bug 503031.


----------------------------------------------------------------------

Comment By: Guido van Rossum (gvanrossum)
Date: 2002-04-01 01:42

Message:
Logged In: YES 
user_id=6380

Medberry, can you see if the patch from SF bug 503031
(http://www.python.org/sf/503031) solves your problem?

----------------------------------------------------------------------

Comment By: David Medberry (medberry)
Date: 2002-03-19 23:46

Message:
Logged In: YES 
user_id=95087

<bold>Is this bold?</bold>

----------------------------------------------------------------------

Comment By: David Medberry (medberry)
Date: 2002-03-19 23:44

Message:
Logged In: YES 
user_id=95087

This is _NOT_ a bug under Linux Python 2.2--it works just
fine there. (Makes me curious why it would behave
differently under Windows, but I'm not sure where to look yet.)

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=532007&group_id=5470