[z3-checkins] r55045 - z3/deliverance/trunk/deliverance
ejucovy at codespeak.net
ejucovy at codespeak.net
Wed May 21 01:45:02 CEST 2008
Author: ejucovy
Date: Wed May 21 01:44:58 2008
New Revision: 55045
Modified:
z3/deliverance/trunk/deliverance/proxyapp.py
Log:
fix up deliverance proxy to support proxy URLs like server.name.com:8080/some/stuff; previously it would set SERVER_PORT:=8080/some/stuff; now it prepends /some/stuff to PATH_INFO. this will very likely still break if app.transparent or app.relocate_content is turned on, because i have no idea what those things do and so did not touch them.
Modified: z3/deliverance/trunk/deliverance/proxyapp.py
==============================================================================
--- z3/deliverance/trunk/deliverance/proxyapp.py (original)
+++ z3/deliverance/trunk/deliverance/proxyapp.py Wed May 21 01:44:58 2008
@@ -23,6 +23,17 @@
self.theme_uri = theme_uri,
self.rule_uri = rule_uri,
self.proxy = proxy
+ self.path_info = ''
+
+ # the proxy might look like foo.bar.org:8080/baz/fleem
+ # so we need to save the baz/fleem part to inject
+ # into PATH_INFO later on (during __call__)
+ proxy = proxy.split('/', 1)
+ if len(proxy) > 1:
+ self.proxy = proxy[0]
+ proxy[1] = proxy[1].strip('/')
+ self.path_info = '/%s' % proxy[1]
+
self.transparent = transparent
self.debug_headers = debug_headers
self.subapp = self.make_app()
@@ -59,6 +70,7 @@
server, port = self.proxy, '80'
environ['SERVER_NAME'] = server
environ['SERVER_PORT'] = port
+ environ['PATH_INFO'] = self.path_info + environ['PATH_INFO']
return self.deliverance_app(
environ, start_response)
More information about the z3-checkins
mailing list