-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[system] WebSocket continuation frame incorrectly handles the message type #1345
[system] WebSocket continuation frame incorrectly handles the message type #1345
Conversation
… type opcode When a frame marked with OPCODE 0, it is a continuation frame. This frame does not carry the message type and should be derived from the previous frame.
Hello! I'm the build bot for the Mono project. I need approval from a Mono team member to build this pull request. A team member should reply with "approve" to approve a build of this pull request, "whitelist" to whitelist this and all future pull requests from this contributor, or "build" to explicitly request a build, even if one has already been done. Contributors can ignore this message. |
Gist of some logging: On line 18, the WireToMessageType is 1, aka text, and this is correctly translated to the WebSocketMessageType on line 21. However, on line 46, there is a continuation frame, (FIN is set to 0), aka OPCODE 0, which is incorrectly translated into a Close on line 49. See more info: http://tools.ietf.org/html/rfc6455#section-5.2 |
Added a bugzilla bug: https://bugzilla.xamarin.com/show_bug.cgi?id=23838 |
My knowledge of how to create a server message that will cause this is very limited, so I just used the SignalR sample. In order to recreate the issue, run the sample webserver from the SignalR repo and then use the console client. Make sure to force the connection to use web sockets as if it fails it reverts to SSE |
This isn't related to #1115, right? |
@akoeplinger, no that seems to be for sending. This one is for the receiving of multiple frames. |
Can we get an NUnit test case for this? (Do we have tests for websockets?) |
approve |
build |
Hello! I'm the build bot for the Mono project. I need approval from a Mono team member to build this pull request. A team member should reply with "approve" to approve a build of this pull request, "whitelist" to whitelist this and all future pull requests from this contributor, or "build" to explicitly request a build, even if one has already been done. Contributors can ignore this message. |
@mattleibow is there still interest to merge this or should it be closed? |
build |
@mattleibow, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR. |
This looks like a bug, sadly, I can not find a case that breaks. Would love to know what this fixes in the wild. |
@mattleibow there is something wrong with signlar(websocket) |
1 similar comment
@mattleibow there is something wrong with signlar(websocket) |
…ion-frame-fix [system] WebSocket continuation frame incorrectly handles the message type Commit migrated from mono/mono@f959605
When a frame marked with OPCODE 0, it is a continuation frame.
This frame does not carry the message type and should be derived from the previous frame.