aboutsummaryrefslogtreecommitdiffstats
path: root/libpathod/language/__init__.py
diff options
context:
space:
mode:
authorThomas Kriechbaumer <thomas@kriechbaumer.name>2015-06-08 10:45:17 +0200
committerThomas Kriechbaumer <thomas@kriechbaumer.name>2015-06-08 10:45:17 +0200
commit293e3c68969f6abdc09cc390f93b658e60ce79be (patch)
treec316aec35670bb43f28eb9d3373564dbdb9614a2 /libpathod/language/__init__.py
parent722b3ae9cd929a7bc2159d7364995a0bdf3ef031 (diff)
downloadmitmproxy-293e3c68969f6abdc09cc390f93b658e60ce79be.tar.gz
mitmproxy-293e3c68969f6abdc09cc390f93b658e60ce79be.tar.bz2
mitmproxy-293e3c68969f6abdc09cc390f93b658e60ce79be.zip
http2: add request-response handling
Diffstat (limited to 'libpathod/language/__init__.py')
-rw-r--r--libpathod/language/__init__.py24
1 files changed, 14 insertions, 10 deletions
diff --git a/libpathod/language/__init__.py b/libpathod/language/__init__.py
index c41e8602..ae9a8c76 100644
--- a/libpathod/language/__init__.py
+++ b/libpathod/language/__init__.py
@@ -3,7 +3,7 @@ import time
import pyparsing as pp
-from . import http, websockets, writer, exceptions
+from . import http, http2, websockets, writer, exceptions
from exceptions import *
from base import Settings
@@ -39,20 +39,24 @@ def parse_pathod(s):
return itertools.chain(*[expand(i) for i in reqs])
-def parse_pathoc(s):
+def parse_pathoc(s, use_http2=False):
try:
s = s.decode("ascii")
except UnicodeError:
raise exceptions.ParseException("Spec must be valid ASCII.", 0, 0)
try:
- reqs = pp.OneOrMore(
- pp.Or(
- [
- websockets.WebsocketClientFrame.expr(),
- http.Request.expr(),
- ]
- )
- ).parseString(s, parseAll=True)
+ if use_http2:
+ expressions = [
+ # http2.Frame.expr(),
+ http2.Request.expr(),
+ ]
+ else:
+ expressions = [
+ websockets.WebsocketClientFrame.expr(),
+ http.Request.expr(),
+ ]
+
+ reqs = pp.OneOrMore(pp.Or(expressions)).parseString(s, parseAll=True)
except pp.ParseException as v:
raise exceptions.ParseException(v.msg, v.line, v.col)
return itertools.chain(*[expand(i) for i in reqs])