diff options
| author | Thomas Kriechbaumer <thomas@kriechbaumer.name> | 2015-06-08 10:45:17 +0200 |
|---|---|---|
| committer | Thomas Kriechbaumer <thomas@kriechbaumer.name> | 2015-06-08 10:45:17 +0200 |
| commit | 293e3c68969f6abdc09cc390f93b658e60ce79be (patch) | |
| tree | c316aec35670bb43f28eb9d3373564dbdb9614a2 /libpathod/language/__init__.py | |
| parent | 722b3ae9cd929a7bc2159d7364995a0bdf3ef031 (diff) | |
| download | mitmproxy-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__.py | 24 |
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]) |
