curl-curl/include
Stefan Eissing 37cecfc7b9
websocket: support CURLOPT_READFUNCTION
Add support for CURLOPT_READFUNCTION with WebSocket urls when *not* in
connect-only mode, e.g. when using curl_multi_perform.

Install the callback function and set CURLOPT_UPLOAD. Return
CURL_READFUNC_PAUSE when having nothing more to send and unpause the
transfer when more data is ready.

This will send the read bytes in a WebSocket BINARY frame.

Add support for this mode in the pytest "ws_data" client and have all
tests run in 'curl_ws_send/recv' and 'peform' mode as well.

Add `curl_ws_start_frame()`. Document, cover in libcurl-ws.md and
explain the READFUNCTION mode for websockets.

Add example `websocket-updown` for this.

Closes #17683
2025-08-11 23:28:54 +02:00
..
curl websocket: support CURLOPT_READFUNCTION 2025-08-11 23:28:54 +02:00
Makefile.am copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
README.md code: language cleanup in comments 2024-07-01 22:58:55 +02:00

include

Public include files for libcurl, external users.

They are all placed in the curl subdirectory here for better fit in any kind of environment. You must include files from here using...

#include <curl/curl.h>

... style and point the compiler's include path to the directory holding the curl subdirectory. It makes it more likely to survive future modifications.

The public curl include files can be shared freely between different platforms and different architectures.