aboutsummaryrefslogtreecommitdiffstats
path: root/libpathod/language.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-10-29 17:33:10 +1300
committerAldo Cortesi <aldo@nullcube.com>2012-10-29 17:33:10 +1300
commit3e0cd6442aa3dd5ecc08af4851e68545121737ab (patch)
tree0333c96ae35d6d869ced4a7719174dee4aa5dd76 /libpathod/language.py
parent747eafd10703d5a93003e410469771f883df68b5 (diff)
downloadmitmproxy-3e0cd6442aa3dd5ecc08af4851e68545121737ab.tar.gz
mitmproxy-3e0cd6442aa3dd5ecc08af4851e68545121737ab.tar.bz2
mitmproxy-3e0cd6442aa3dd5ecc08af4851e68545121737ab.zip
Add .spec methods for Request and Response objects.
Diffstat (limited to 'libpathod/language.py')
-rw-r--r--libpathod/language.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/libpathod/language.py b/libpathod/language.py
index 2dceefa5..1c010c91 100644
--- a/libpathod/language.py
+++ b/libpathod/language.py
@@ -242,7 +242,7 @@ class ValueGenerate(_Value):
class ValueFile(_Value):
def __init__(self, path):
- self.path = path
+ self.path = str(path)
@classmethod
def expr(klass):
@@ -807,6 +807,9 @@ class _Response(_Message):
)
return resp
+ def spec(self):
+ return ":".join([i.spec() for i in self.tokens])
+
class _Request(_Message):
comps = (
@@ -849,26 +852,27 @@ class _Request(_Message):
)
return resp
+ def spec(self):
+ return ":".join([i.spec() for i in self.tokens])
+
class CraftedRequest(_Request):
def __init__(self, spec, tokens):
_Request.__init__(self, tokens)
- self.spec, self.tokens = spec, tokens
def serve(self, fp, settings, host):
d = _Request.serve(self, fp, settings, host)
- d["spec"] = self.spec
+ d["spec"] = self.spec()
return d
class CraftedResponse(_Response):
def __init__(self, spec, tokens):
_Response.__init__(self, tokens)
- self.spec, self.tokens = spec, tokens
def serve(self, fp, settings):
d = _Response.serve(self, fp, settings, None)
- d["spec"] = self.spec
+ d["spec"] = self.spec()
return d
@@ -910,7 +914,7 @@ def parse_response(settings, s):
May raise ParseException or FileAccessDenied
"""
try:
- s.decode("ascii")
+ s = s.decode("ascii")
except UnicodeError:
raise ParseException("Spec must be valid ASCII.", 0, 0)
if s.startswith(FILESTART):
@@ -926,7 +930,7 @@ def parse_request(settings, s):
May raise ParseException or FileAccessDenied
"""
try:
- s.decode("ascii")
+ s = s.decode("ascii")
except UnicodeError:
raise ParseException("Spec must be valid ASCII.", 0, 0)
if s.startswith(FILESTART):