aboutsummaryrefslogtreecommitdiffstats
path: root/libpathod/language/__init__.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2015-05-17 15:49:16 +1200
committerAldo Cortesi <aldo@nullcube.com>2015-05-17 15:52:56 +1200
commitabe1f09f2c7eebfccfbf86ca0b16ec6d1711627b (patch)
treeb70e5316f6db6f467827abf198b9d969ae7b045d /libpathod/language/__init__.py
parentd80fbc24107ac2166b80ccb5f4a240a7f480497b (diff)
downloadmitmproxy-abe1f09f2c7eebfccfbf86ca0b16ec6d1711627b.tar.gz
mitmproxy-abe1f09f2c7eebfccfbf86ca0b16ec6d1711627b.tar.bz2
mitmproxy-abe1f09f2c7eebfccfbf86ca0b16ec6d1711627b.zip
HTTP and websocket requests now have an xN clause to repeat
Diffstat (limited to 'libpathod/language/__init__.py')
-rw-r--r--libpathod/language/__init__.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/libpathod/language/__init__.py b/libpathod/language/__init__.py
index 36ec19e2..3b7529f0 100644
--- a/libpathod/language/__init__.py
+++ b/libpathod/language/__init__.py
@@ -31,7 +31,7 @@ def parse_requests(s):
except UnicodeError:
raise exceptions.ParseException("Spec must be valid ASCII.", 0, 0)
try:
- return pp.OneOrMore(
+ reqs = pp.OneOrMore(
pp.Or(
[
websockets.WebsocketFrame.expr(),
@@ -41,6 +41,14 @@ def parse_requests(s):
).parseString(s, parseAll=True)
except pp.ParseException, v:
raise exceptions.ParseException(v.msg, v.line, v.col)
+ expanded = []
+ for i in reqs:
+ if i.times:
+ for j in range(int(i.times.value)):
+ expanded.append(i.copy())
+ else:
+ expanded.append(i)
+ return expanded
def serve(msg, fp, settings):