aboutsummaryrefslogtreecommitdiffstats
path: root/libpathod
diff options
context:
space:
mode:
Diffstat (limited to 'libpathod')
-rw-r--r--libpathod/rparse.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/libpathod/rparse.py b/libpathod/rparse.py
index 4f7cc12d..b47681cc 100644
--- a/libpathod/rparse.py
+++ b/libpathod/rparse.py
@@ -211,6 +211,26 @@ class ShortcutContentType:
return e.setParseAction(lambda x: klass(*x))
+
+class ShortcutLocation:
+ def __init__(self, value):
+ self.value = value
+
+ def mod_response(self, settings, r):
+ r.headers.append(
+ (
+ LiteralGenerator("Location"),
+ self.value.get_generator(settings)
+ )
+ )
+
+ @classmethod
+ def expr(klass):
+ e = pp.Literal("l").suppress()
+ e = e + Value
+ return e.setParseAction(lambda x: klass(*x))
+
+
class Body:
def __init__(self, value):
self.value = value
@@ -332,6 +352,7 @@ class Response:
DisconnectBefore,
DisconnectRandom,
ShortcutContentType,
+ ShortcutLocation,
)
version = "HTTP/1.1"
code = 200