You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 13, 2021. It is now read-only.
Repository navigation
This repository was archived by the owner on Jan 13, 2021. It is now read-only.
Spec says: Endpoints SHOULD send a GOAWAY frame when ending a connection, providing that circumstances permit it.
So when shutting down gracefully we need to call close on all streams and then send a final GoAway frame on the connection control stream, something like:
# Close all streams
for stream in list(self.streams.values()):
print("Closing stream with id %d" % stream.stream_id)
stream.close()
# Send GoAway frame to the server
self._send_cb(GoAwayFrame(0), True)
I think we should also close the stream for connection control with id 0, but I'm not sure yet where it is.
On a related matter, the spec also says An endpoint that receives an unexpected stream identifier MUST respond with a connection error (Section 5.4.1) of type PROTOCOL_ERROR. I don't think we are validating if the stream identifier actually exists or not on the client side. Code looks as follow right now:
Activity
jdecuyper commentedon May 13, 2015
Hi @Lukasa!
Spec says: Endpoints SHOULD send a GOAWAY frame when ending a connection, providing that circumstances permit it.
So when shutting down gracefully we need to call
closeon all streams and then send a finalGoAwayframe on the connection control stream, something like:I think we should also close the stream for connection control with id 0, but I'm not sure yet where it is.
On a related matter, the spec also says An endpoint that receives an unexpected stream identifier MUST respond with a connection error (Section 5.4.1) of type PROTOCOL_ERROR. I don't think we are validating if the stream identifier actually exists or not on the client side. Code looks as follow right now:
I guess we should validate first if this
stream_idexists inside the streams collection, right?Lukasa commentedon May 13, 2015
Stream zero always exists, and there is no need to explicitly close it.
A try...except block would be better style, but yes. =)
Sounds like a good idea to me!