kazk
54acf30635
Add `permessage-deflate` support
4 years ago
Dominik Nakamura
5e0fde5dc6
Fix clippy warnings and deprecated settings
4 years ago
Daniel Abramov
2787031c2f
Replace `InputBuffer` with a faster alternative
...
We're also deprecating the usage of `input_buffer` crate, see:
https://github.com/snapview/input_buffer/issues/6#issuecomment-870548303
4 years ago
Teymour Aldridge
94aef58646
Fix a typo in a docstring
4 years ago
WiredSound
79dcf9f77c
Use matches! macro in tests
4 years ago
WiredSound
98377cf3dd
Rename ProtocolErrorType to just ProtocolError, implement using thiserror
4 years ago
WiredSound
652a6b776e
Rename CapacityErrorType to just CapacityError, implement using thiserror
4 years ago
WiredSound
78d59f9266
Escape square brackets in doc comment
4 years ago
WiredSound
0b34bee94f
Add capacity error types
4 years ago
WiredSound
6f846da0e3
Add protocol error types
4 years ago
Adam Bezecny (DHL IT Services)
c8c236056b
if streamlined
4 years ago
Adam Bezecny (DHL IT Services)
2e55ed0fcc
comment streamlined
4 years ago
Adam Bezecny (DHL IT Services)
9f292d21fc
minor fixes
4 years ago
Adam Bezecny (DHL IT Services)
4f7dab5d7b
documentation for server_allow_unmasked improved
4 years ago
Adam Bezecny (DHL IT Services)
a9adb42343
server_allow_unmasked changed from Option<bool> to bool
4 years ago
Adam Bezecny (DHL IT Services)
0121bf9682
WebSocketConfig extended to allow accepting unmasked client frames
4 years ago
Daniel Abramov
fcacea7c9f
chore: apply `clippy`
4 years ago
Daniel Abramov
96d9eb75e5
chore: apply `fmt` to the whole project
4 years ago
Daniel Abramov
521f1a0767
clean up the redirect logic a bit
4 years ago
Redrield
60f7b0f024
Fix some code-review issues
...
* Replace Redirection error with a general Http error that owns the
response
* Make the default client connect function iterative instead of
recursive
* Add a limit to the amount of redirects a client will attempt to
perform
4 years ago
Horki
88ff5f371f
matches!: use macros; remove unused imports
5 years ago
philipp
599b677f5a
Avoid temporary variable `fin`
5 years ago
Evgeniy A. Dushistov
5a95f12c6d
refactoring/apply_mask: reduce number of usage of unsafe to 1
...
Plus it should be faster now:
apply_mask/fallback/0 time: [24.282 ns 24.727 ns 25.255 ns]
apply_mask/fast/0 time: [11.921 ns 11.963 ns 12.011 ns]
apply_mask/fast_safe/0 time: [7.9340 ns 7.9807 ns 8.0261 ns]
apply_mask/fallback/1 time: [25.284 ns 25.710 ns 26.124 ns]
apply_mask/fast/1 time: [20.433 ns 20.476 ns 20.511 ns]
apply_mask/fast_safe/1 time: [9.3208 ns 9.3833 ns 9.4470 ns]
apply_mask/fallback/2 time: [16.051 ns 16.160 ns 16.275 ns]
apply_mask/fast/2 time: [20.564 ns 20.569 ns 20.574 ns]
apply_mask/fast_safe/2 time: [9.1449 ns 9.1830 ns 9.2189 ns]
apply_mask/fallback/3 time: [15.386 ns 15.548 ns 15.715 ns]
apply_mask/fast/3 time: [18.836 ns 18.867 ns 18.917 ns]
apply_mask/fast_safe/3 time: [8.3092 ns 8.3566 ns 8.4076 ns]
5 years ago
Evgeniy A. Dushistov
9764ac13a1
infra/apply_mask: test more case for apply_mask
...
make sure that input with len 0,1,2,3 also tested
5 years ago
Evgeniy A. Dushistov
de80b9bced
Change Into to From for CloseCode to u16 conversation
...
As stated in standard library documentation:
> One should always prefer implementing From over Into because implementing From automatically
> provides one with an implementation of Into thanks to the blanket implementation in the standard library.
And this provides the way to use u16::from(close_code)
5 years ago
Mike Pedersen
1f744f1548
Make mask public on FrameHeader
...
Without the ability to get the mask, having the `FrameHeader` struct as a public type along with functions like `parse` is somewhat useless. I can't see any reason why it shouldn't be public.
5 years ago
Naja Melan
9c48226c8f
chore: Remove needless closing/opening of the impl block on WebSocketContext.
5 years ago
Naja Melan
1f407f1005
feat: Allow reading the configuration.
...
This allows wrapper types to correctly split data before creating websocket
messages, guaranteeing to respect the max size.
Notably when the WebSocket is provided by user code.
5 years ago
Naja Melan
d17f749914
doc: be precise about max message sizes.
...
If preferred to avoid abbreviations, it could be called mebibytes.
5 years ago
Alexey Galakhov
6b3423292f
trivial: fix clippy warning
...
Signed-off-by: Alexey Galakhov <agalakhov@snapview.de>
5 years ago
Alexey Galakhov
85f211230a
websocket: add `can_read()` and `can_write()`
...
Signed-off-by: Alexey Galakhov <agalakhov@snapview.de>
5 years ago
Alexey Galakhov
da3acc107e
protocol: handle "Connection reset by peer" in closing state
...
Signed-off-by: Alexey Galakhov <agalakhov@snapview.de>
5 years ago
Sebastian Dröge
88760b8b59
Fix various clippy warnings
5 years ago
Sebastian Dröge
7a4779b6f6
Run everything through rustfmt
5 years ago
Alexey Galakhov
2903a02ef5
frame: correct possible infinite loop on sending
...
Closes : #83
Signed-off-by: Alexey Galakhov <agalakhov@snapview.de>
6 years ago
Naja Melan
17fe7987eb
Make use of can_read
6 years ago
Naja Melan
1ee3f342aa
Consider remote sending a frame after sending a close frame a protocol error.
...
The websocket RFC explicitly states this is not allowed.
6 years ago
Naja Melan
2918eec1b3
No longer accept to send after close
6 years ago
Naja Melan
f818322a25
Add some documentation to WebSocket and Error.
6 years ago
Naja Melan
9379ebe47d
Don't swallow ping/pong while waiting for close acknowledgement
6 years ago
Naja Melan
bf63a71cd1
cleanup unnecessary dereference
6 years ago
Naja Melan
28579b567a
Improve WebSocketState interface with Copy, PartialEq, ...
6 years ago
Naja Melan
b923ec42c0
Keep processing incoming data even after we have initiated a close handshake.
6 years ago
Artem Vorotnikov
cbf80ecc76
Edition 2018, formatting, clippy fixes
6 years ago
Daniel Abramov
e2bec4b81f
Change the way we return `Err::ConnectionClosed`
...
This way will ensure that we only return this error once. The previous
solution fixed the problem, but it did not guarantee that ""connection
closed" is returned only once.
6 years ago
Daniel Abramov
dbc8bd7b71
Fix issue with hanging server connection
6 years ago
Alexey Galakhov
06308b1b3f
close: fix autobahn regression
...
Signed-off-by: Alexey Galakhov <agalakhov@snapview.de>
6 years ago
Alexey Galakhov
b8f7d3668e
close: refine close semantics
...
Signed-off-by: Alexey Galakhov <agalakhov@snapview.de>
6 years ago
Yusuke Sasaki
828eafd400
extract the context values from `WebSocket`
6 years ago
Daniel Abramov
c8c3d6290d
Make `Close` part of the `Message` enum
6 years ago