aboutsummaryrefslogtreecommitdiffstats
path: root/libpathod/language/__init__.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2015-06-08 23:06:09 +1200
committerAldo Cortesi <aldo@nullcube.com>2015-06-08 23:06:09 +1200
commit05efcf0a786b0bc51257b322014fceb6561d0f48 (patch)
treec316aec35670bb43f28eb9d3373564dbdb9614a2 /libpathod/language/__init__.py
parent7b4e50bb6868b7e0c63137c636720ccd3b974faa (diff)
parent293e3c68969f6abdc09cc390f93b658e60ce79be (diff)
downloadmitmproxy-05efcf0a786b0bc51257b322014fceb6561d0f48.tar.gz
mitmproxy-05efcf0a786b0bc51257b322014fceb6561d0f48.tar.bz2
mitmproxy-05efcf0a786b0bc51257b322014fceb6561d0f48.zip
Merge pull request #25 from Kriechi/pathoc-http2
[WIP] pathoc: HTTP/2
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])