http2: implement error response

This commit is contained in:
Thomas Kriechbaumer 2015-06-16 11:33:10 +02:00
parent a0d8afd0fc
commit ec68aa303e
2 changed files with 11 additions and 14 deletions

View File

@ -179,7 +179,7 @@ class Response(message.Message):
body = self.body
if body:
body = body.values(settings)
body = body.string()
self.rendered_values = settings.protocol.create_response(
self.code.string(),
@ -192,17 +192,11 @@ class Response(message.Message):
return ":".join([i.spec() for i in self.tokens])
def make_error_response(reason, body=None):
raise NotImplementedError
# tokens = [
# Code("800"),
# Header(
# base.TokValueLiteral("Content-Type"),
# base.TokValueLiteral("text/plain")
# ),
# Reason(base.TokValueLiteral(reason)),
# Body(base.TokValueLiteral("pathod error: " + (body or reason))),
# ]
# return Response(tokens)
tokens = [
Code("800"),
Body(base.TokValueLiteral("pathod error: " + (body or reason))),
]
return Response(tokens)
# class Frame(message.Message):
# pass

View File

@ -306,8 +306,11 @@ class PathodHandler(tcp.BaseHandler):
)])
else:
if self.use_http2:
raise NotImplementedError(\
"HTTP/2 only supports request/response with the craft anchor point.")
anchor_gen = iter([self.make_http_error_response(
"Spec Error",
"HTTP/2 only supports request/response with the craft anchor point: %s" %
self.server.craftanchor
)])
if anchor_gen: