summaryrefslogtreecommitdiff
path: root/paste/proxy.py
diff options
context:
space:
mode:
authorianb <devnull@localhost>2006-12-18 19:12:00 +0000
committerianb <devnull@localhost>2006-12-18 19:12:00 +0000
commit8122da5775577faad229f9febc2838d4af3425b4 (patch)
treebc0717f08f0e25ece8445b9c97a6f83f1528e541 /paste/proxy.py
parent7b8dc91c464ac3a770140b26d4e6cc351bafba0d (diff)
downloadpaste-8122da5775577faad229f9febc2838d4af3425b4.tar.gz
Quote SCRIPT_NAME and PATH_INFO in construct_url and when forwarding the request via the proxy
Diffstat (limited to 'paste/proxy.py')
-rw-r--r--paste/proxy.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/paste/proxy.py b/paste/proxy.py
index 9148159..1fa38c3 100644
--- a/paste/proxy.py
+++ b/paste/proxy.py
@@ -31,6 +31,7 @@ TODO:
import httplib
import urlparse
+import urllib
from paste import httpexceptions
from paste.util.converters import aslist
@@ -87,14 +88,15 @@ class Proxy(object):
else:
body = ''
+ path_info = urllib.quote(environ['PATH_INFO'])
if self.path:
- request_path = environ['PATH_INFO']
+ request_path = path_info
if request_path[0] == '/':
request_path = request_path[1:]
path = urlparse.urljoin(self.path, request_path)
else:
- path = environ['PATH_INFO']
+ path = path_info
conn.request(environ['REQUEST_METHOD'],
path,
@@ -213,6 +215,7 @@ class TransparentProxy(object):
path = (environ.get('SCRIPT_NAME', '')
+ environ.get('PATH_INFO', ''))
+ path = urllib.quote(path)
if 'QUERY_STRING' in environ:
path += '?' + environ['QUERY_STRING']
conn.request(environ['REQUEST_METHOD'],