aboutsummaryrefslogtreecommitdiffstats
path: root/libpathod/language/http2.py
diff options
context:
space:
mode:
Diffstat (limited to 'libpathod/language/http2.py')
-rw-r--r--libpathod/language/http2.py34
1 files changed, 25 insertions, 9 deletions
diff --git a/libpathod/language/http2.py b/libpathod/language/http2.py
index 8aee9931..8a82fc99 100644
--- a/libpathod/language/http2.py
+++ b/libpathod/language/http2.py
@@ -1,6 +1,7 @@
import pyparsing as pp
-from netlib.http import user_agents
+from netlib import odict
+from netlib.http import user_agents, semantics
from . import base, message
"""
@@ -155,7 +156,7 @@ class Response(_HTTP2Message):
def __init__(self, tokens):
super(Response, self).__init__(tokens)
self.rendered_values = None
- self.stream_id = 0
+ self.stream_id = 2
@property
def code(self):
@@ -178,17 +179,22 @@ class Response(_HTTP2Message):
if self.rendered_values:
return self.rendered_values
else:
- headers = [header.values(settings) for header in self.headers]
+ headers = odict.ODictCaseless([header.values(settings) for header in self.headers])
body = self.body
if body:
body = body.string()
- self.rendered_values = settings.protocol.create_response(
+ resp = semantics.Response(
+ (2, 0),
self.code.string(),
- self.stream_id,
+ '',
headers,
- body)
+ body,
+ )
+ resp.stream_id = self.stream_id
+
+ self.rendered_values = settings.protocol.assemble(resp)
return self.rendered_values
def spec(self):
@@ -215,6 +221,7 @@ class Request(_HTTP2Message):
def __init__(self, tokens):
super(Request, self).__init__(tokens)
self.rendered_values = None
+ self.stream_id = 1
@property
def method(self):
@@ -255,17 +262,26 @@ class Request(_HTTP2Message):
if self.nested_response:
path += self.nested_response.parsed.spec()
- headers = [header.values(settings) for header in self.headers]
+ headers = odict.ODictCaseless([header.values(settings) for header in self.headers])
body = self.body
if body:
body = body.string()
- self.rendered_values = settings.protocol.create_request(
+ req = semantics.Request(
+ '',
self.method.string(),
+ '',
+ '',
+ '',
path,
+ (2, 0),
headers,
- body)
+ body,
+ )
+ req.stream_id = self.stream_id
+
+ self.rendered_values = settings.protocol.assemble(req)
return self.rendered_values
def spec(self):