Open
Conversation
Ignore frames with mismatching version numbers, except for SYN_STREAM Per http://www.chromium.org/spdy/spdy- protocol/spdy-protocol-draft2#TOC-Protocol-versioning > SPDY does lazy version checking on receipt of any control frame, and > does version enforcement only on SYN_STREAM frames. If an endpoint > receives a SYN_STREAM frame with an unsupported version, the endpoint > must return a RST_STREAM frame with the status code > UNSUPPORTED_VERSION. For any other type of control frame, the frame > must be ignored.
Allow {spdy_version, negotiate} to be passed to
espdy_session:start_link.
When in negotiate mode, no version is selected until the client sends
its first SETTINGS frame, at which point we switch to the same version
sent in the frame.
* add {ok, noreply, State} response from cbmod:init()
* pass messages from the stream to the cbmod
We now responce to the WINDOW_UPDATE frame, and maintain the remaining window size. We don't block when there window size drops below zero yet.
Author
|
ping |
Author
|
I've also added support for the WINDOW_UPDATE frame in the session and stream modules. This makes it so that Firefox is properly supported. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
These two changes fix some version issues with espdy.
The first changeset just fixed version handling to match what the SPDY2 spec says about which frames should care about version mismatch, and which shouldn't care.
The second changeset adds an additional option for spdy_version, when creating a session. 'negotiate' tells the session to defer Zdef init until the client sends its first SETTINGS frame. At which point Zdef is initialized, and the spdy_version is selected. This allows espdy to accept both spdy2 and spdy3 clients.