curl/lib
Ruocco, Calvin d3594be653
ws: tests and fixes
This started out as regression tests for the `curl_ws_recv()` and
`curl_ws_send()` implementation and ended up with a bugfix, additional
protocol validation and minor logging improvements.

- Fix reset of fragmented message decoder state when a PING/PONG is
  received in between message fragments.

- Fix undefined behavior (applying zero offset to null pointer) in
  curl_ws_send() when the given buffer is NULL.

- Detect invalid overlong PING/PONG/CLOSE frames.
- Detect invalid fragmented PING/PONG/CLOSE frames.
- Detect invalid sequences of fragmented frames.

  - a) A continuation frame (0x80...) is received without any ongoing
    fragmented message.
  - b) A new fragmented message is started (0x81/0x01/0x82/0x02...)
    before the ongoing fragmented message has terminated.

- Made logs for invalid opcodes easier to understand.
- Moved noisy logs to the `CURL_TRC_WS` log level.
- Unified the prefixes for WebSocket log messages: `[WS] ...`

- Add env var `CURL_WS_FORCE_ZERO_MASK` in debug builds.

  - If set, it forces the bit mask applied to outgoing payloads to
    0x00000000, which effectively means the payload is not masked at
    all. This drastically simplifies defining the expected `<protocol>`
    data in test cases.

- 2700: Frame types
- 2701: Invalid opcode 0x3
- 2702: Invalid opcode 0xB
- 2703: Invalid reserved bit RSV1 _(replaces 2310)_
- 2704: Invalid reserved bit RSV2
- 2705: Invalid reserved bit RSV3
- 2706: Invalid masked server message
- 2707: Peculiar frame sizes _(part. replaces 2311)_
- 2708: Automatic PONG
- 2709: No automatic PONG _(replaces 2312)_
- 2710: Unsolicited PONG
- 2711: Empty PING/PONG/CLOSE
- 2712: Max sized PING/PONG/CLOSE
- 2713: Invalid oversized PING _(replaces 2307)_
- 2714: Invalid oversized PONG
- 2715: Invalid oversized CLOSE
- 2716: Invalid fragmented PING
- 2717: Invalid fragmented PONG
- 2718: Invalid fragmented CLOSE
- 2719: Fragmented messages _(part. replaces 2311)_
- 2720: Fragmented messages with empty fragments
- 2721: Fragmented messages with interleaved pong
- 2722: Invalid fragmented message without initial frame
- 2723: Invalid fragmented message without final frame

- 2305: curl_ws_recv() loop reading three larger frames
  - This test involuntarily sent an invalid sequence of opcodes (0x01...,0x01...,0x81...) , but neither libcurl nor the test caught this! The correct sequence was tested in 2311 (0x01...,0x00...,0x80...). See below for 2311.
  - Validation of the opcode sequence was added to libcurl and is now tested in 2723.
  - Superseded by 2719 (fragmented message) and 2707 (large frames).
- 2307: overlong PING payload
  - The tested PING payload length check was actually missing, but the test didn't catch this since it involuntarily sent an invalid opcode (0x19... instead of 0x89...) so that the expected error occurred, but for the wrong reason.
  - Superseded by 2713.
- 2310: unknown reserved bit set in frame header
  - Superseded by 2703 and extended by 2704 and 2705.
- 2311: curl_ws_recv() read fragmented message
  - Superseded by 2719 (fragmented message) and 2707 (large frames).
- 2312: WebSockets no auto ping
  - Superseded by 2709.

- No tests for `CURLOPT_WRITEFUNCTION`.
- No tests for sending of invalid frames/fragments.

Closes #17136
2025-06-02 11:15:38 +02:00
..
curlx spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
vauth spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
vquic misc: fix spelling 2025-05-29 10:21:05 +02:00
vssh spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
vtls spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
.checksrc lib: use Curl_str_* instead of strtok_r() 2025-02-17 13:18:28 +01:00
.gitignore gitignore: add lib/Makefile.soname.cmake 2025-01-28 16:04:29 +01:00
altsvc.c spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
altsvc.h lib: use BIT() instead of bool in structs more 2025-04-22 08:01:08 +02:00
amigaos.c core: stop redefining E* macros on Windows, map EACCES, related fixes 2025-03-13 00:03:25 +01:00
amigaos.h tidy-up: mostly whitespace nits 2023-08-31 23:02:10 +00:00
arpa_telnet.h code: language cleanup in comments 2024-07-01 22:58:55 +02:00
asyn-ares.c asyn-ares: remove obsolete reference to local_ip6 2025-05-26 10:12:28 +02:00
asyn-base.c asyn-base: remove the HTTPSRR_WORKS define 2025-04-24 08:40:52 +02:00
asyn-thrdd.c asyn-thrdd: fix cleanup when RR fails due to OOM 2025-06-02 09:08:04 +02:00
asyn.h c-ares: really lazy init channel 2025-04-24 14:07:01 +02:00
bufq.c websocket: fix message send corruption 2025-01-16 16:19:07 -05:00
bufq.h websocket: fix message send corruption 2025-01-16 16:19:07 -05:00
bufref.c build: enable -Wcast-qual, fix or silence compiler warnings 2025-03-10 22:30:15 +01:00
bufref.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
cf-h1-proxy.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
cf-h1-proxy.h proxy: http2 proxy tunnel implementation 2023-04-06 13:04:46 +02:00
cf-h2-proxy.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
cf-h2-proxy.h proxy: http2 proxy tunnel implementation 2023-04-06 13:04:46 +02:00
cf-haproxy.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
cf-haproxy.h lib: remove unused functions, make single-use static 2023-05-23 11:08:51 +02:00
cf-https-connect.c spelling: 'a' vs 'an' 2025-05-30 11:38:35 +02:00
cf-https-connect.h dns_entry: move from conn to data->state 2025-05-20 14:49:17 +02:00
cf-socket.c curlx: move curlx_inet_pton 2025-05-09 13:45:24 +02:00
cf-socket.h curlx: move nonblock.[ch] into curlx/ 2025-05-08 13:22:02 +02:00
cfilters.c ftp: fix teardown of DATA connection in done 2025-05-31 15:15:05 +02:00
cfilters.h ftp: fix teardown of DATA connection in done 2025-05-31 15:15:05 +02:00
CMakeLists.txt curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
config-mac.h config-mac: drop MACOS_SSL_SUPPORT macro 2024-12-20 11:38:59 +01:00
config-os400.h lib: use Curl_str_* instead of strtok_r() 2025-02-17 13:18:28 +01:00
config-plan9.h lib: use Curl_str_* instead of strtok_r() 2025-02-17 13:18:28 +01:00
config-riscos.h lib: use Curl_str_* instead of strtok_r() 2025-02-17 13:18:28 +01:00
config-win32.h misc: we write *an* IPv6 address 2025-05-30 07:53:31 +02:00
conncache.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
conncache.h curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
connect.c dns_entry: move from conn to data->state 2025-05-20 14:49:17 +02:00
connect.h dns_entry: move from conn to data->state 2025-05-20 14:49:17 +02:00
content_encoding.c CURLOPT_HTTP_TRANSFER_DECODING: fixed 2025-04-06 11:31:22 +02:00
content_encoding.h content_encoding: make Curl_all_content_encodings allocless 2023-11-07 16:35:30 +01:00
cookie.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
cookie.h cookie: small variable type cleanups 2025-01-07 16:47:18 +01:00
cshutdn.c dns_entry: move from conn to data->state 2025-05-20 14:49:17 +02:00
cshutdn.h curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
curl_addrinfo.c spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
curl_addrinfo.h curl_addrinfo: support operating systems with only getaddrinfo(3) 2024-11-02 22:28:59 +01:00
curl_config.h.cmake misc: we write *an* IPv6 address 2025-05-30 07:53:31 +02:00
curl_ctype.h strparse: switch to curl_off_t as base data type 2025-02-15 21:58:48 +01:00
curl_des.c lib: fix building with wolfSSL without DES support 2024-08-13 09:28:27 +02:00
curl_des.h lib: fix building with wolfSSL without DES support 2024-08-13 09:28:27 +02:00
curl_endian.c code: language cleanup in comments 2024-07-01 22:58:55 +02:00
curl_endian.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_fnmatch.c build: enable -Wcast-qual, fix or silence compiler warnings 2025-03-10 22:30:15 +01:00
curl_fnmatch.h tidy-up: OS names 2024-08-04 19:17:45 +02:00
curl_get_line.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
curl_get_line.h curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
curl_gethostname.c Makefile.mk: drop in favour of autotools and cmake (MS-DOS, AmigaOS3) 2024-12-16 23:20:55 +01:00
curl_gethostname.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_gssapi.c build: enable -Wcast-qual, fix or silence compiler warnings 2025-03-10 22:30:15 +01:00
curl_gssapi.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_hmac.h sha256/hmac: use these with TLS builds now 2025-01-14 12:13:59 +01:00
curl_krb5.h curl_krb5: only use functions if FTP is still enabled 2025-04-03 10:52:47 +02:00
curl_ldap.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_md4.h lib: add ability to disable auths individually 2023-09-07 17:45:06 +02:00
curl_md5.h lib: remove function pointer typecasts for hmac/sha256/md5 2024-10-15 14:32:39 +02:00
curl_memory.h addrinfo: add curl macro to avoid redefining foreign symbols 2025-02-13 12:46:39 +01:00
curl_memrchr.c curl_memrchr: enable in all builds 2025-03-10 23:10:31 +01:00
curl_memrchr.h urlapi: fix redirect from file:// with query, and simplify 2025-02-27 11:51:19 +01:00
curl_ntlm_core.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
curl_ntlm_core.h cmake: fix building unit1600 due to missing ssl/openssl.h 2024-07-13 12:00:14 +02:00
curl_printf.h mprintf: provide hex digits for escape.c to use 2025-05-12 07:44:35 +02:00
curl_range.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
curl_range.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_rtmp.c curlx: move nonblock.[ch] into curlx/ 2025-05-08 13:22:02 +02:00
curl_rtmp.h curl_version_info: provide librtmp version 2024-04-15 16:48:34 +02:00
curl_sasl.c sasl: give help when unable to select AUTH 2025-05-23 22:56:05 +02:00
curl_sasl.h sasl: give help when unable to select AUTH 2025-05-23 22:56:05 +02:00
curl_setup.h lib: drop curlx_getpid, use fake pid in SMB 2025-05-09 10:01:30 +02:00
curl_setup_once.h core: stop redefining E* macros on Windows, map EACCES, related fixes 2025-03-13 00:03:25 +01:00
curl_sha256.h sha256/hmac: use these with TLS builds now 2025-01-14 12:13:59 +01:00
curl_sha512_256.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
curl_sha512_256.h curl_sha512_256: fix symbol collisions with nettle library 2024-08-13 10:04:06 +02:00
curl_sspi.c spelling: 'a' vs 'an' 2025-05-30 11:38:35 +02:00
curl_sspi.h spelling: 'a' vs 'an' 2025-05-30 11:38:35 +02:00
curl_threads.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
curl_threads.h async-threaded resolver: use ref counter 2025-04-03 16:43:37 +02:00
curl_trc.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
curl_trc.h build: enable -Wcast-qual, fix or silence compiler warnings 2025-03-10 22:30:15 +01:00
cw-out.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
cw-out.h lib: add const to clientwriter tables 2025-04-03 12:45:54 -07:00
cw-pause.c lib: add const to clientwriter tables 2025-04-03 12:45:54 -07:00
cw-pause.h lib: add const to clientwriter tables 2025-04-03 12:45:54 -07:00
dict.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
dict.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
dllmain.c dllmain: Call OpenSSL thread cleanup for Windows and Cygwin 2024-04-24 04:04:25 -04:00
doh.c misc: we write *an* IPv6 address 2025-05-30 07:53:31 +02:00
doh.h doh: reduce the DNS request buffer size 2025-04-18 23:10:29 +02:00
dynhds.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
dynhds.h spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
easy.c lib: change progress bitwise ops to bitfields 2025-05-23 23:13:03 +02:00
easy_lock.h easy_lock: use Sleep(1) for thread yield on old Windows 2025-01-21 01:45:21 -05:00
easygetopt.c lib: make Curl_easyopts const 2025-04-03 13:43:26 -07:00
easyif.h WebSockets: make support official (non-experimental) 2024-09-27 13:20:25 +02:00
easyoptions.c TLS: add CURLOPT_SSL_SIGNATURE_ALGORITHMS and --sigalgs 2025-04-30 17:47:22 +02:00
easyoptions.h lib: make Curl_easyopts const 2025-04-03 13:43:26 -07:00
escape.c mprintf: provide hex digits for escape.c to use 2025-05-12 07:44:35 +02:00
escape.h lib: unify conversions to/from hex 2025-04-02 14:17:56 +02:00
fake_addrinfo.c lib: provide a getaddrinfo wrapper 2025-04-28 23:48:02 +02:00
fake_addrinfo.h lib: provide a getaddrinfo wrapper 2025-04-28 23:48:02 +02:00
file.c file: use easy handle meta for protocol struct 2025-05-08 13:18:45 +02:00
file.h file: use easy handle meta for protocol struct 2025-05-08 13:18:45 +02:00
fileinfo.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
fileinfo.h curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
fopen.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
fopen.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
formdata.c formdata: fix memory leak in OOM situation 2025-05-20 10:44:53 +02:00
formdata.h formdata: cleanups 2025-05-19 13:26:02 +02:00
ftp.c ftp: fix teardown of DATA connection in done 2025-05-31 15:15:05 +02:00
ftp.h ftp: use easy handle and connectin meta data for protocol structs 2025-05-06 09:07:43 +02:00
ftplistparser.c ftplistparser: protect more cases decrementing 'len' 2025-05-21 22:55:04 +02:00
ftplistparser.h wildcard: remove files and move functions into ftplistparser.c 2023-03-03 23:25:30 +01:00
functypes.h Makefile.mk: drop in favour of autotools and cmake (MS-DOS, AmigaOS3) 2024-12-16 23:20:55 +01:00
getenv.c build: add Windows CE / CeGCC support, with CI jobs 2025-02-21 13:56:34 +01:00
getinfo.c lib: change progress bitwise ops to bitfields 2025-05-23 23:13:03 +02:00
getinfo.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
gopher.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
gopher.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
hash.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
hash.h curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
headers.c spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
headers.h llist: remove direct struct accesses, use only functions 2024-08-12 13:18:10 +02:00
hmac.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
hostip.c dns_entry: move from conn to data->state 2025-05-20 14:49:17 +02:00
hostip.h dns_entry: move from conn to data->state 2025-05-20 14:49:17 +02:00
hostip4.c asyn resolver code improvements 2025-04-16 09:34:20 +02:00
hostip6.c curlx: move curlx_inet_pton 2025-05-09 13:45:24 +02:00
hsts.c spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
hsts.h lib: use BIT() instead of bool in structs more 2025-04-22 08:01:08 +02:00
http.c spelling: 'a' vs 'an' 2025-05-30 11:38:35 +02:00
http.h headers: enforce a max number of response header to accept 2025-05-08 08:17:56 +02:00
http1.c spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
http1.h lib: use BIT() instead of bool in structs more 2025-04-22 08:01:08 +02:00
http2.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
http2.h lib: clarify 'conn->httpversion' 2025-01-24 10:59:02 +01:00
http_aws_sigv4.c license: update some copyright links to curl.se 2025-06-01 13:44:15 +02:00
http_aws_sigv4.h license: update some copyright links to curl.se 2025-06-01 13:44:15 +02:00
http_chunks.c http_chunks: narrow variable scope for 'trlen' 2025-05-12 11:02:00 +02:00
http_chunks.h spelling: 'a' vs 'an' 2025-05-30 11:38:35 +02:00
http_digest.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
http_digest.h lib: add ability to disable auths individually 2023-09-07 17:45:06 +02:00
http_negotiate.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
http_negotiate.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
http_ntlm.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
http_ntlm.h tidy-up: OS names 2024-08-04 19:17:45 +02:00
http_proxy.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
http_proxy.h http_proxy: move dynhds_add_custom here from http.c 2024-12-03 15:02:58 +01:00
httpsrr.c asyn resolver code improvements 2025-04-16 09:34:20 +02:00
httpsrr.h lib: use BIT() instead of bool in structs more 2025-04-22 08:01:08 +02:00
idn.c lib: move multibyte.[ch] to curlx/ 2025-05-08 10:19:19 +02:00
idn.h idn: add native AppleIDN (icucore) support for macOS/iOS 2024-04-17 00:24:09 +02:00
if2ip.c inet_ntop: rename curlx_inet_ntop to Curl_inet_ntop 2025-05-12 07:42:59 +02:00
if2ip.h if2ip: make the buf_size arg a size_t 2024-04-30 14:22:11 +02:00
imap.c spelling: 'a' vs 'an' 2025-05-30 11:38:35 +02:00
imap.h imap: use easy handle/connection meta for proto structs 2025-05-07 10:25:18 +02:00
inet_ntop.c spelling: 'a' vs 'an' 2025-05-30 11:38:35 +02:00
inet_ntop.h inet_ntop: rename curlx_inet_ntop to Curl_inet_ntop 2025-05-12 07:42:59 +02:00
krb5.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
ldap.c lib: move multibyte.[ch] to curlx/ 2025-05-08 10:19:19 +02:00
libcurl.def vtls: feature ssls-export for SSL session im-/export 2025-01-08 23:32:07 +01:00
libcurl.rc (lib)curl.rc: set debug flag also for CURLDEBUG and UNITTESTS 2024-05-22 08:38:12 +02:00
libcurl.vers.in build: tidy up and improve versioned-symbols options 2024-09-21 12:21:14 +02:00
llist.c build: enable -Wcast-qual, fix or silence compiler warnings 2025-03-10 22:30:15 +01:00
llist.h lib: TLS session ticket caching reworked 2024-12-20 14:59:23 +01:00
macos.c docs: use lowercase curl and libcurl 2025-01-02 17:15:54 +01:00
macos.h macOS: fix target detection more 2023-07-29 23:42:53 +02:00
Makefile.am checksrc: avoid extra runs in CI, enable more check locally, fix fallouts 2025-05-19 18:59:50 +02:00
Makefile.inc curlx: move curlx_inet_pton 2025-05-09 13:45:24 +02:00
Makefile.soname build: tidy up and improve versioned-symbols options 2024-09-21 12:21:14 +02:00
md4.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
md5.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
memdebug.c socket: use accept4 when available 2025-04-06 13:08:33 +02:00
memdebug.h socket: use accept4 when available 2025-04-06 13:08:33 +02:00
mime.c mime: reuse the base64 string from the base64 code 2025-05-10 23:01:14 +02:00
mime.h code: language cleanup in comments 2024-07-01 22:58:55 +02:00
mprintf.c mprintf: move outputs into separate functions 2025-05-21 22:56:02 +02:00
mqtt.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
mqtt.h mqtt: use conn/easy meta hash 2025-04-29 14:25:25 +02:00
multi.c misc: fix spelling 2025-05-29 10:21:05 +02:00
multi_ev.c misc: fix spelling 2025-05-29 10:21:05 +02:00
multi_ev.h lib: add meta_hash to connection, eliminate hash_offt 2025-04-22 15:57:18 +02:00
multihandle.h multi: do transfer book keeping using mid 2025-04-17 17:28:38 +02:00
multiif.h multi: do transfer book keeping using mid 2025-04-17 17:28:38 +02:00
netrc.c netrc: deal with null token better 2025-05-15 00:48:10 +02:00
netrc.h curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
noproxy.c spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
noproxy.h noproxy: patterns need to be comma separated 2024-06-01 12:25:13 +02:00
openldap.c sasl: give help when unable to select AUTH 2025-05-23 22:56:05 +02:00
optiontable.pl scripts: fix perl indentation, whitespace, semicolons 2025-04-29 19:35:55 +02:00
parsedate.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
parsedate.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
pingpong.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
pingpong.h smtp: use easy handle/connectin meta for proto structs 2025-05-07 16:01:05 +02:00
pop3.c spelling: 'a' vs 'an' 2025-05-30 11:38:35 +02:00
pop3.h pop3: use meta hashes at easy handle and connection 2025-05-06 09:08:47 +02:00
progress.c lib: change progress bitwise ops to bitfields 2025-05-23 23:13:03 +02:00
progress.h lib: change progress bitwise ops to bitfields 2025-05-23 23:13:03 +02:00
psl.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
psl.h lib: use BIT() instead of bool in structs more 2025-04-22 08:01:08 +02:00
rand.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
rand.h vtls/rustls: support strong CSRNG data 2024-09-13 14:11:56 +02:00
rename.c lib: move multibyte.[ch] to curlx/ 2025-05-08 10:19:19 +02:00
rename.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
request.c file: use easy handle meta for protocol struct 2025-05-08 13:18:45 +02:00
request.h file: use easy handle meta for protocol struct 2025-05-08 13:18:45 +02:00
rtsp.c rtsp: remove redundant condition 2025-05-12 11:03:44 +02:00
rtsp.h rtsp: move easy handle/connection protoocol structs into meta data 2025-05-06 17:13:24 +02:00
select.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
select.h core: stop redefining E* macros on Windows, map EACCES, related fixes 2025-03-13 00:03:25 +01:00
sendf.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
sendf.h client writer: handle pause before deocding 2025-02-20 15:53:18 +01:00
setopt.c spelling: 'a' vs 'an' 2025-05-30 11:38:35 +02:00
setopt.h setopt: warn on Curl_set*opt() uses not using the return value 2024-05-12 17:27:51 +02:00
setup-os400.h os400: workaround an IBM ASCII run-time library bug 2024-07-27 00:17:13 +02:00
setup-vms.h openssl: drop support for old OpenSSL/LibreSSL versions 2025-02-21 12:02:35 +01:00
setup-win32.h windows: drop code and curl manifest targeting W2K and older 2025-02-24 21:00:31 +01:00
sha256.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
share.c multi: do transfer book keeping using mid 2025-04-17 17:28:38 +02:00
share.h dnscache: slight refactoring 2025-04-03 16:40:56 +02:00
sigpipe.h lib: use BIT() instead of bool in structs more 2025-04-22 08:01:08 +02:00
slist.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
slist.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
smb.c spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
smb.h smb: use easy handle/connection meta hash to keep structs 2025-05-06 09:10:07 +02:00
smtp.c spelling: 'a' vs 'an' 2025-05-30 11:38:35 +02:00
smtp.h smtp: use easy handle/connectin meta for proto structs 2025-05-07 16:01:05 +02:00
sockaddr.h build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
socketpair.c curlx: move nonblock.[ch] into curlx/ 2025-05-08 13:22:02 +02:00
socketpair.h eventfd: fix feature guards 2025-04-03 01:12:19 +02:00
socks.c spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
socks.h lib: remove unused functions, make single-use static 2023-05-23 11:08:51 +02:00
socks_gssapi.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
socks_sspi.c lib: move multibyte.[ch] to curlx/ 2025-05-08 10:19:19 +02:00
speedcheck.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
speedcheck.h curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
splay.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
splay.h curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
strcase.c spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
strcase.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
strdup.c spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
strdup.h lib: rename Curl_strndup to Curl_memdup0 to avoid misunderstanding 2023-12-08 17:22:33 +01:00
strequal.c strparse: switch to curl_off_t as base data type 2025-02-15 21:58:48 +01:00
strerror.c windows: fix to preserve error code in curlx_winapi_strerror() 2025-05-09 15:56:07 +02:00
strerror.h curlx: add curlx_winapi_ functions 2025-05-09 10:45:36 +02:00
system_win32.c spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
system_win32.h tidy-up: alphasort lists, indentation/whitespace, pp 2025-03-04 01:46:53 +01:00
telnet.c telnet: keep protocol struct at easy handle meta 2025-05-08 09:30:56 +02:00
telnet.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
tftp.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
tftp.h setopt: check CURLOPT_TFTP_BLKSIZE range on set 2023-11-22 07:44:05 +01:00
transfer.c curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
transfer.h spelling: call it null-terminate consistently 2025-05-30 17:29:45 +02:00
uint-bset.c multi: do transfer book keeping using mid 2025-04-17 17:28:38 +02:00
uint-bset.h multi: do transfer book keeping using mid 2025-04-17 17:28:38 +02:00
uint-hash.c lib: add meta_hash to connection, eliminate hash_offt 2025-04-22 15:57:18 +02:00
uint-hash.h lib: add meta_hash to connection, eliminate hash_offt 2025-04-22 15:57:18 +02:00
uint-spbset.c multi: do transfer book keeping using mid 2025-04-17 17:28:38 +02:00
uint-spbset.h multi: do transfer book keeping using mid 2025-04-17 17:28:38 +02:00
uint-table.c multi: do transfer book keeping using mid 2025-04-17 17:28:38 +02:00
uint-table.h misc: fix spelling 2025-05-29 10:21:05 +02:00
url.c misc: fix spelling 2025-05-29 10:21:05 +02:00
url.h dns_entry: move from conn to data->state 2025-05-20 14:49:17 +02:00
urlapi-int.h test1658: add unit test for the HTTPS RR decoder 2025-04-05 21:03:47 +02:00
urlapi.c urlapi: move complex switch case to separate func 2025-05-24 13:39:34 +02:00
urldata.h lib: change progress bitwise ops to bitfields 2025-05-23 23:13:03 +02:00
version.c tidy-up: delete, comment or scope C macros reported unused 2025-02-14 10:37:14 +01:00
ws.c ws: tests and fixes 2025-06-02 11:15:38 +02:00
ws.h ws: store protocol context as connection meta data 2025-04-28 09:15:05 +02:00