aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libpathod/cmdline.py14
-rw-r--r--libpathod/pathoc.py9
2 files changed, 22 insertions, 1 deletions
diff --git a/libpathod/cmdline.py b/libpathod/cmdline.py
index 22205fb7..06a6c533 100644
--- a/libpathod/cmdline.py
+++ b/libpathod/cmdline.py
@@ -66,6 +66,17 @@ def args_pathoc(argv, stdout=sys.stdout, stderr=sys.stderr):
help="Connection timeout"
)
parser.add_argument(
+ "--http2", dest="use_http2", action="store_true", default=False,
+ help='Perform all requests over a single HTTP/2 connection.'
+ )
+ parser.add_argument(
+ "--http2-skip-connection-preface",
+ dest="http2_skip_connection_preface",
+ action="store_true",
+ default=False,
+ help='Skips the HTTP/2 connection preface before sending requests.')
+
+ parser.add_argument(
'host', type=str,
metavar = "host[:port]",
help='Host and port to connect to'
@@ -77,6 +88,7 @@ def args_pathoc(argv, stdout=sys.stdout, stderr=sys.stderr):
specifcations
"""
)
+
group = parser.add_argument_group(
'SSL',
)
@@ -189,7 +201,7 @@ def args_pathoc(argv, stdout=sys.stdout, stderr=sys.stderr):
data = open(r).read()
r = data
try:
- reqs.append(language.parse_pathoc(r))
+ reqs.append(language.parse_pathoc(r, args.use_http2))
except language.ParseException as v:
print >> stderr, "Error parsing request spec: %s" % v.msg
print >> stderr, v.marked()
diff --git a/libpathod/pathoc.py b/libpathod/pathoc.py
index 4efa0447..72c2db3c 100644
--- a/libpathod/pathoc.py
+++ b/libpathod/pathoc.py
@@ -150,6 +150,10 @@ class Pathoc(tcp.TCPClient):
clientcert=None,
ciphers=None,
+ # HTTP/2
+ use_http2=False,
+ http2_skip_connection_preface=False,
+
# Websockets
ws_read_limit = None,
@@ -189,6 +193,9 @@ class Pathoc(tcp.TCPClient):
self.ciphers = ciphers
self.sslinfo = None
+ self.use_http2 = use_http2
+ self.http2_skip_connection_preface = http2_skip_connection_preface
+
self.ws_read_limit = ws_read_limit
self.timeout = timeout
@@ -407,6 +414,8 @@ def main(args): # pragma: nocover
sslversion = args.sslversion,
clientcert = args.clientcert,
ciphers = args.ciphers,
+ use_http2 = args.use_http2,
+ http2_skip_connection_preface = args.http2_skip_connection_preface,
showreq = args.showreq,
showresp = args.showresp,
explain = args.explain,