|
628f39bb
|
2024-08-12T10:00:44
|
|
ws: fix potential NULL pointer dereference
|
|
00c94bea
|
2024-07-22T21:47:53
|
|
ws: allow Upgrade in Connection header anywhere
This will make it work for Firefox, which uses "Connection: keep-alive, Upgrade"
Reimplemented our own evutil_ascii_strcasestr function (same as
non-portable strcasestr)
|
|
15b9b6f0
|
2023-10-17T12:45:33
|
|
Apply suggestions from code review
Co-authored-by: Azat Khuzhin <a3at.mail@gmail.com>
|
|
b828c4ab
|
2023-10-16T15:25:12
|
|
Added 10MiB recv limit for WS frames, also a small nit
- Added WS_MAX_RECV_FRAME_SZ, if a received frame exceeds this limit (10
MiB), error out. This is a DoS prevention measure.
- Also redid the unmasking code in get_ws_frame(), to avoid assumptions
about the size of an unsigned int and some casting, and avoid
memcpy(), just use the mask bytes from the buffer that are already there
to unmask.
|
|
7fbbe86f
|
2023-10-14T23:53:36
|
|
Fix unaligned access + missing frame length
get_ws_frame:
- had potentially unaligned access; fixed.
- was not reading the full 8 bytes in the 64-bit case (was using the
incorrect htons); fixed.
make_ws_frame:
- wasn't writing the length in the 8-byte case.
Also switched both functions to use size_t rather than int where
appropriate.
|
|
0797e207
|
2023-08-02T18:37:42
|
|
Fixed misaligned address access
|
|
f39ad1c4
|
2023-08-31T22:38:41
|
|
ws: replace evws_send with evws_send_text/evws_send_binary (ABI breakage) (#1500)
Replace evws_send with evws_send_text, and introduce new API -
evws_send_binary, that can be used to send binary frames.
But note, that this commit breaks the ABI compatibility, but it should be OK,
since there was only alpha release with evws_send, and nobody should rely on
this, and I hope nobody does (we decided to go this way to avoid supporting
deprecated API).
|
|
56d380b9
|
2022-11-12T18:45:13
|
|
ws: ignore case while comparing values of Upgrade/Connection headers
Cc: @widgetii
Fixes: #1373
|
|
3ec3b469
|
2022-10-23T13:47:23
|
|
ws: fix compile error on centos 7 - very old compiler (#1359)
* http: fix typo
* ws: fix comile error
On CentOS:
CC ws.lo
ws.c: In function 'get_ws_frame':
ws.c:244:3: error: 'for' loop initial declarations are only allowed in C99 mode
for (int i = 0; i < payload_len; i++) {
^
ws.c:244:3: note: use option -std=c99 or -std=gnu99 to compile your code
|
|
e8f5a61d
|
2022-10-12T22:15:21
|
|
Remove bad copy-paste
|
|
c2ecb4ac
|
2022-10-12T14:13:44
|
|
Add locks for server WS, fixes #1357
|
|
53f9c420
|
2022-09-14T13:33:13
|
|
Fix conflict with SHA1 function from openssl
|
|
e8313084
|
2022-09-12T22:16:56
|
|
Add minimal WebSocket server implementation for evhttp (#1322)
This adds few functions to use evhttp-based webserver to handle incoming
WebSockets connections. We've tried to use both libevent and libwebsockets in
our application, but found that we need to have different ports at the same
time to handle standard HTTP and WebSockets traffic. This change can help to
stick only with libevent library.
Implementation was inspired by modified Libevent source code in ipush project
[1].
[1]: https://github.com/sqfasd/ipush/tree/master/deps/libevent-2.0.21-stable
Also, WebSocket-based chat server was added as a sample.
|