* Issue #3159 - do not copy RSV bits to auto-fragmented frames
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* Issue #3159 - warn if DeflateFrameExtension detects autoFragment on
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* Issue #3159 - automatically set auto-fragment false in DeflateFrameExt
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* Issue #3159 - automatically set auto-fragment false in DeflateFrameExt
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* Issue #3159 - add todo
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* Issue #3809 - ensure abnormal close frame will hard close ws connection
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* Issue #3159 - signal onError on abnormal status code close
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* reworked WebSocket autobahn test code and the core MessageHandler
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* PR #3802 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* Issue #3762 - use the default port of 0 for WebSocket tests
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* Issue #3762 - use system property to set custom port in xml
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* Issue #3705 - notify WebSocket framehandler on client upgrade failure
getFrameHandler on the ClientUpgradeRequest no longer takes
the upgrade response, the response must be set later if it is
required by the framehandler implementation
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* Issue #3705 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* Issue #3705 - throw if FrameHandler could not be created
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* wip
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* Issue #3705 - count down the onOpen latch in NetworkFuzzer
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* Issue #3705 - WebSocket Session CompletableFuture refactor
- sessionFutures for jetty and javax are now implemented using the
futureCoreSession which will occur after onOpen
- the request and response are set on the FrameHandler before the
upgrade
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
correctly detect when a message has exceeded the max size in the sink
forward changes to the input buffer size to the connection in WSChannel
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
the client and server subclasses of JavaxWebSocketContainer now
share a common configuration instance which is used as the default
configuration for both server and client endpoints
to do this a setter was added for the configuration on the CoreClient
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
WebSocketChannel.processConnectionError now defaults to NO_CLOSE
status if no protocol reasons can be found
added some debug logging
improvements to tests
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
Nulling out values in WebSocketAdapter causes race conditions when
trying to access session and endpoint externally
Race condition in WebSocketChannel.Flusher.onCompleteFailure(),
processConnectionError should be called first to ensure that the
correct close reason is processed, super.onCompleteFailure() was closing
the connection causing a read failure.
race condition between the server detecting a read failure and sending
a response and the client detecting the write failure, now blocking
on the server so it is not reading and will not detect the failure
Signed-off-by: lachan-roberts <lachlan@webtide.com>
ExtensionStack.negotiate now differentiates between incorrect
extension config offered or incorrect config from negotiation
adding more BadMessageException cases
Signed-off-by: lachan-roberts <lachlan@webtide.com>
default behaviour of Negotiation no longer includes all of the
offered extensions as the negotiated extensions but it now takes
only the first extension if there are multiple of the same name,
this is now done when the negotiation is created and can be overwritten
by the negotiator
Throw exception on websocket errors so the proper status code can
be reported back to the client
fix to checking for multiple negotiated extensions of the same name
added tests for core and jetty websockets for the negotiation
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
wire up the jetty-api extensions by copying the ExtensionConfig from
the jetty-api upgrade request to the core upgrade request
make UpgradeListener interface methods default for convenience
introduce test to test the functionality of API ExtensionConfig
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>