From 31d48e693453899e96b19ce14acab633d26fcf0b Mon Sep 17 00:00:00 2001 From: Fredrik Tolf Date: Wed, 28 Nov 2012 05:50:55 +0100 Subject: [PATCH] Added some more URI reconstruction tools. --- wrw/proto.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/wrw/proto.py b/wrw/proto.py index b1f0ab3..8474b3a 100644 --- a/wrw/proto.py +++ b/wrw/proto.py @@ -133,16 +133,26 @@ def appendurl(url, other): p = local.rfind('/') return consurl(proto, host, local[:p + 1] + other) -def requrl(req): +def siteurl(req): host = req.ihead.get("Host", None) if host is None: raise Exception("Could not reconstruct URL because no Host header was sent") proto = "http" if req.https: proto = "https" + return "%s://%s/" % (proto, host) + +def scripturl(req): + s = siteurl(req) + if req.uriname[0] != '/': + raise Exception("Malformed local part when reconstructing URL") + return siteurl(req) + req.uriname[1:] + +def requrl(req): + s = siteurl(req) if req.uri[0] != '/': raise Exception("Malformed local part when reconstructing URL") - return "%s://%s%s" % (proto, host, req.uri) + return siteurl(req) + req.uri[1:] def parstring(pars={}, **augment): buf = "" -- 2.11.0