python: Call on_close callback when connection is lost for server session

This commit is contained in:
Tatsuhiro Tsujikawa 2015-06-07 16:17:48 +09:00
parent 5fbb99e3d0
commit c2ca04c1db
1 changed files with 8 additions and 1 deletions

View File

@ -883,6 +883,11 @@ cdef class _HTTP2SessionCore(_HTTP2SessionCoreBase):
return promised_handler
def connection_lost(self):
for handler in self.handlers:
handler.on_close(cnghttp2.NGHTTP2_INTERNAL_ERROR)
self.handlers = set()
cdef class _HTTP2ClientSessionCore(_HTTP2SessionCoreBase):
def __cinit__(self, *args, **kwargs):
cdef cnghttp2.nghttp2_session_callbacks *callbacks
@ -1280,6 +1285,7 @@ if asyncio:
def connection_lost(self, exc):
logging.info('connection_lost')
if self.http2:
self.http2.connection_lost()
self.http2 = None
def data_received(self, data):
@ -1357,7 +1363,8 @@ if asyncio:
When whole response is received, on_response_done() is invoked.
When stream is closed, on_close(error_code) is called.
When stream is closed or underlying connection is lost,
on_close(error_code) is called.
The application can send follow up requests using HTTP2Client.send_request() method.