Since enums are themselves iterable there's no need to maintain a list
of the elements of the enum dating from back before the enum when its
values were just independent constants that hung out together.
This refactoring greatly reduces the base-internal use of packet kinds
and will make much simpler a future change distinguishing front-to-back
packet kinds from back-to-front packet kinds.
If for any reason, our definition of gpr_int64 is different from the definition of google::protobuf::int64, the virtual override would fail, as this needs to be of the precisely exactly the same type.
That change allows us to use protobuf's int64 definition.
":authority" is not mandatory in HTTP/2 unless request method is
"CONNECT". If ":authority" is not present, server should look for
"host" header field. This patch does not check method value, it is a
future TODO. This is a first step for GH-1022.
deadline is passed by address to PyArg_ParseTuple to update its value.
However, deadline is a const double, so attempting to change its value
is undefined behavior. Remove the const to have well-defined behavior.
Previously client sends its own initiated stream ID in last-stream-id
field of GOAWAY, which misses the point in HTTP/2 specification.
Unless server push is utilized heavily, client should not assign its
transport's last_incoming_stream_id, since it is a response from
server to client's initiated stream ID. This commit fixes it.
See GH-1024
tag. This can happen if the tag is actually an integer being
typecast to void*
To avoid breaking the API of existing Next calls, I've made
a new AsyncNext method with a tri-state return that indicates
whether there is a shutdown, an actual event, or a timeout.
Still needs proper testing for the AsyncNext method specifically.