curl/lib
Stefan Eissing 47f5b1a37f
lib: introduce struct easy_poll_set for poll information
Connection filter had a `get_select_socks()` method, inspired by the
various `getsocks` functions involved during the lifetime of a
transfer. These, depending on transfer state (CONNECT/DO/DONE/ etc.),
return sockets to monitor and flag if this shall be done for POLLIN
and/or POLLOUT.

Due to this design, sockets and flags could only be added, not
removed. This led to problems in filters like HTTP/2 where flow control
prohibits the sending of data until the peer increases the flow
window. The general transfer loop wants to write, adds POLLOUT, the
socket is writeable but no data can be written.

This leads to cpu busy loops. To prevent that, HTTP/2 did set the
`SEND_HOLD` flag of such a blocked transfer, so the transfer loop cedes
further attempts. This works if only one such filter is involved. If a
HTTP/2 transfer goes through a HTTP/2 proxy, two filters are
setting/clearing this flag and may step on each other's toes.

Connection filters `get_select_socks()` is replaced by
`adjust_pollset()`. They get passed a `struct easy_pollset` that keeps
up to `MAX_SOCKSPEREASYHANDLE` sockets and their `POLLIN|POLLOUT`
flags. This struct is initialized in `multi_getsock()` by calling the
various `getsocks()` implementations based on transfer state, as before.

After protocol handlers/transfer loop have set the sockets and flags
they want, the `easy_pollset` is *always* passed to the filters. Filters
"higher" in the chain are called first, starting at the first
not-yet-connection one. Each filter may add sockets and/or change
flags. When all flags are removed, the socket itself is removed from the
pollset.

Example:

 * transfer wants to send, adds POLLOUT
 * http/2 filter has a flow control block, removes POLLOUT and adds
   POLLIN (it is waiting on a WINDOW_UPDATE from the server)
 * TLS filter is connected and changes nothing
 * h2-proxy filter also has a flow control block on its tunnel stream,
   removes POLLOUT and adds POLLIN also.
 * socket filter is connected and changes nothing
 * The resulting pollset is then mixed together with all other transfers
   and their pollsets, just as before.

Use of `SEND_HOLD` is no longer necessary in the filters.

All filters are adapted for the changed method. The handling in
`multi.c` has been adjusted, but its state handling the the protocol
handlers' `getsocks` method are untouched.

The most affected filters are http/2, ngtcp2, quiche and h2-proxy. TLS
filters needed to be adjusted for the connecting handshake read/write
handling.

No noticeable difference in performance was detected in local scorecard
runs.

Closes #11833
2023-10-25 09:34:32 +02:00
..
vauth lib: enable hmac for digest as well 2023-09-20 13:38:42 +02:00
vquic lib: introduce struct easy_poll_set for poll information 2023-10-25 09:34:32 +02:00
vssh vssh: remove the #ifdef for Curl_ssh_init, use empty macro 2023-10-20 22:56:01 +02:00
vtls lib: introduce struct easy_poll_set for poll information 2023-10-25 09:34:32 +02:00
.checksrc lib: don't use strerror() 2021-09-09 07:53:42 +02:00
.gitattributes copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.gitignore copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
altsvc.c altsvc: accept and parse IPv6 addresses in response headers 2023-08-28 17:08:42 +02:00
altsvc.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
amigaos.c amissl: add missing signal.h include 2023-07-20 23:41:47 +02:00
amigaos.h tidy-up: mostly whitespace nits 2023-08-31 23:02:10 +00:00
arpa_telnet.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
asyn-ares.c asyn-ares: reduce timeout to 2000ms 2023-08-29 10:40:57 +02:00
asyn-thread.c asyn-thread: use pipe instead of socketpair for IPC when available 2023-10-18 08:23:53 +02:00
asyn.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
base64.c base64: also build for curl 2023-10-04 23:22:16 +02:00
bufq.c bufq: remove Curl_bufq_skip_and_shift (unused) 2023-09-23 10:50:10 +02:00
bufq.h bufq: remove Curl_bufq_skip_and_shift (unused) 2023-09-23 10:50:10 +02:00
bufref.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
bufref.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
c-hyper.c lib: move handling of data->req.writer_stack into Curl_client_write() 2023-09-28 10:00:13 +02:00
c-hyper.h hyper: remove hyptransfer->endtask 2023-09-03 18:42:37 +02:00
cf-h1-proxy.c lib: introduce struct easy_poll_set for poll information 2023-10-25 09:34:32 +02:00
cf-h1-proxy.h proxy: http2 proxy tunnel implementation 2023-04-06 13:04:46 +02:00
cf-h2-proxy.c lib: introduce struct easy_poll_set for poll information 2023-10-25 09:34:32 +02:00
cf-h2-proxy.h proxy: http2 proxy tunnel implementation 2023-04-06 13:04:46 +02:00
cf-haproxy.c lib: introduce struct easy_poll_set for poll information 2023-10-25 09:34:32 +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 lib: introduce struct easy_poll_set for poll information 2023-10-25 09:34:32 +02:00
cf-https-connect.h lib: give source files cf-http.* better fitting names 2023-03-02 08:48:34 +01:00
cf-socket.c lib: introduce struct easy_poll_set for poll information 2023-10-25 09:34:32 +02:00
cf-socket.h cf-socket: restore Curl_sock_assign_addr() 2023-05-25 14:34:39 +02:00
cfilters.c lib: introduce struct easy_poll_set for poll information 2023-10-25 09:34:32 +02:00
cfilters.h lib: introduce struct easy_poll_set for poll information 2023-10-25 09:34:32 +02:00
CMakeLists.txt cmake: fix unity with Windows Unicode + TrackMemory 2023-10-03 09:43:46 +00:00
config-amigaos.h lib: remove TIME_WITH_SYS_TIME 2023-09-28 22:58:36 +02:00
config-dos.h lib: remove TIME_WITH_SYS_TIME 2023-09-28 22:58:36 +02:00
config-mac.h lib: remove TIME_WITH_SYS_TIME 2023-09-28 22:58:36 +02:00
config-os400.h lib: remove TIME_WITH_SYS_TIME 2023-09-28 22:58:36 +02:00
config-plan9.h lib: remove TIME_WITH_SYS_TIME 2023-09-28 22:58:36 +02:00
config-riscos.h lib: remove TIME_WITH_SYS_TIME 2023-09-28 22:58:36 +02:00
config-win32.h cmake: pre-fill rest of detection values for Windows 2023-10-24 21:06:36 +00:00
config-win32ce.h lib: remove TIME_WITH_SYS_TIME 2023-09-28 22:58:36 +02:00
conncache.c urldata: move the 'internal' boolean to the state struct 2023-10-20 16:59:52 +02:00
conncache.h lib: add CURLINFO_CONN_ID and CURLINFO_XFER_ID 2023-06-12 23:53:00 +02:00
connect.c lib: introduce struct easy_poll_set for poll information 2023-10-25 09:34:32 +02:00
connect.h lib: remove unused functions, make single-use static 2023-05-23 11:08:51 +02:00
content_encoding.c lib: move handling of data->req.writer_stack into Curl_client_write() 2023-09-28 10:00:13 +02:00
content_encoding.h lib: move handling of data->req.writer_stack into Curl_client_write() 2023-09-28 10:00:13 +02:00
cookie.c cookie: set ->running in cookie_init even if data is NULL 2023-09-19 08:26:07 +02:00
cookie.h cookie: reduce variable scope, add const 2023-09-15 22:09:43 +02:00
curl_addrinfo.c misc: fix spelling mistakes 2023-05-23 10:42:09 +02:00
curl_addrinfo.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_base64.h tool: add "variable" support 2023-07-31 11:51:34 +02:00
curl_config.h.cmake configure: check for the fseeko declaration too 2023-10-22 20:20:49 +02:00
curl_ctype.h escape: replace Curl_isunreserved with ISUNRESERVED 2023-09-14 03:07:45 -04:00
curl_des.c nss: remove support for this TLS library 2023-07-29 23:44:28 +02:00
curl_des.h nss: remove support for this TLS library 2023-07-29 23:44:28 +02:00
curl_endian.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_endian.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_fnmatch.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_fnmatch.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_get_line.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_get_line.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_gethostname.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +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 gssapi: align global gss_OID_desc vars to silence ld warnings on macOS ventura 2023-03-10 08:04:42 +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 lib: enable hmac for digest as well 2023-09-20 13:38:42 +02:00
curl_krb5.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01: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: add ability to disable auths individually 2023-09-07 17:45:06 +02:00
curl_memory.h cmake: add support for "unity" builds 2023-06-07 13:06:08 +00:00
curl_memrchr.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_memrchr.h build: delete checks for C89 standard headers 2023-09-26 14:25:10 +00:00
curl_multibyte.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_multibyte.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_ntlm_core.c crypto: ensure crypto initialization works 2023-08-08 10:44:01 +02:00
curl_ntlm_core.h nss: remove support for this TLS library 2023-07-29 23:44:28 +02:00
curl_ntlm_wb.c curl_ntlm_wb: fix elif typo 2023-10-21 10:29:02 +02:00
curl_ntlm_wb.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_path.c checksrc: disallow spaces before labels 2023-05-18 20:45:04 +02:00
curl_path.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_printf.h cmake: add support for "unity" builds 2023-06-07 13:06:08 +00:00
curl_range.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_range.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_rtmp.c lib: unify the upload/method handling 2023-04-25 12:38:38 +02:00
curl_rtmp.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_sasl.c lib: add ability to disable auths individually 2023-09-07 17:45:06 +02:00
curl_sasl.h misc: reduce struct and struct field sizes 2023-01-04 15:36:36 +01:00
curl_setup.h mingw: delete support for legacy mingw.org toolchain 2023-09-23 09:12:57 +00:00
curl_setup_once.h cmake: add support for "unity" builds 2023-06-07 13:06:08 +00:00
curl_sha256.h lib: add ability to disable auths individually 2023-09-07 17:45:06 +02:00
curl_sspi.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl_sspi.h mingw: delete support for legacy mingw.org toolchain 2023-09-23 09:12:57 +00:00
curl_threads.c mingw: delete support for legacy mingw.org toolchain 2023-09-23 09:12:57 +00:00
curl_threads.h mingw: delete support for legacy mingw.org toolchain 2023-09-23 09:12:57 +00:00
curl_trc.c curl_trc: remove a bad assertion 2023-10-14 03:19:59 -04:00
curl_trc.h misc: spellfixes 2023-08-25 13:21:07 +02:00
curlx.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
dict.c checksrc: disallow spaces before labels 2023-05-18 20:45:04 +02:00
dict.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
doh.c urldata: move the 'internal' boolean to the state struct 2023-10-20 16:59:52 +02:00
doh.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
dynbuf.c dynbuf: never allocate larger than "toobig" 2023-03-28 10:22:53 +02:00
dynbuf.h MQTT: improve receive of ACKs 2023-10-09 18:34:17 +02:00
dynhds.c http2: header conversion tightening 2023-10-21 14:36:51 +02:00
dynhds.h http2: header conversion tightening 2023-10-21 14:36:51 +02:00
easy.c vssh: remove the #ifdef for Curl_ssh_init, use empty macro 2023-10-20 22:56:01 +02:00
easy_lock.h easy_lock: add a pthread_mutex_t fallback 2023-10-12 23:40:08 -04:00
easygetopt.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
easyif.h Websocket en-/decoding 2023-04-25 23:16:51 +02:00
easyoptions.c haproxy: add --haproxy-clientip flag to spoof client IPs 2023-06-05 20:08:37 +02:00
easyoptions.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
escape.c lib: provide and use Curl_hexencode 2023-09-30 11:45:39 +02:00
escape.h lib: provide and use Curl_hexencode 2023-09-30 11:45:39 +02:00
file.c lib: let the max filesize option stop too big transfers too 2023-09-23 11:20:20 +02:00
file.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
fileinfo.c ftplistparser: replace realloc with dynbuf 2023-03-28 10:11:33 +02:00
fileinfo.h ftplistparser: replace realloc with dynbuf 2023-03-28 10:11:33 +02:00
fopen.c misc: better random strings 2023-09-16 11:37:57 +02:00
fopen.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
formdata.c configure: check for the fseeko declaration too 2023-10-22 20:20:49 +02:00
formdata.h configure, cmake, lib: more form api deprecation 2023-07-31 08:31:38 +02:00
ftp.c lib: introduce struct easy_poll_set for poll information 2023-10-25 09:34:32 +02:00
ftp.h ftp: add more conditions for connection reuse 2023-03-13 09:07:23 +01:00
ftplistparser.c spelling: fix codespell 2.2.6 typos 2023-10-03 21:37:56 +00:00
ftplistparser.h wildcard: remove files and move functions into ftplistparser.c 2023-03-03 23:25:30 +01:00
functypes.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
getenv.c getenv: PlayStation doesn't have getenv() 2023-10-19 17:00:35 +02:00
getinfo.c lib: add CURLINFO_CONN_ID and CURLINFO_XFER_ID 2023-06-12 23:53:00 +02:00
getinfo.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
gopher.c http: fix sending of large requests 2023-09-05 16:36:03 +02:00
gopher.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
hash.c hash: fix assigning same value 2023-04-14 09:26:26 +02:00
hash.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
headers.c headers: accept leading whitespaces on first response header 2023-08-07 12:45:45 +02:00
headers.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
hmac.c lib: enable hmac for digest as well 2023-09-20 13:38:42 +02:00
hostasyn.c hostip: avoid sscanf and extra buffer copies 2023-02-27 20:43:13 +01:00
hostip.c hostip: show the list of IPs when resolving is done 2023-10-20 23:00:10 +02:00
hostip.h hostip: show the list of IPs when resolving is done 2023-10-20 23:00:10 +02:00
hostip4.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
hostip6.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
hostsyn.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
hsts.c cmake: add support for "unity" builds 2023-06-07 13:06:08 +00:00
hsts.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
http.c RTSP: improved RTP parser 2023-10-21 14:38:21 +02:00
http.h misc: fix spelling 2023-08-25 20:54:14 +02:00
http1.c http: h1/h2 proxy unification 2023-09-25 20:12:18 +02:00
http1.h http: h1/h2 proxy unification 2023-09-25 20:12:18 +02:00
http2.c lib: introduce struct easy_poll_set for poll information 2023-10-25 09:34:32 +02:00
http2.h lib: remove unused functions, make single-use static 2023-05-23 11:08:51 +02:00
http_aws_sigv4.c lib: provide and use Curl_hexencode 2023-09-30 11:45:39 +02:00
http_aws_sigv4.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
http_chunks.c lib: move handling of data->req.writer_stack into Curl_client_write() 2023-09-28 10:00:13 +02:00
http_chunks.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
http_digest.c lib: add ability to disable auths individually 2023-09-07 17:45:06 +02:00
http_digest.h lib: add ability to disable auths individually 2023-09-07 17:45:06 +02:00
http_negotiate.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
http_negotiate.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
http_ntlm.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
http_ntlm.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
http_proxy.c lib: introduce struct easy_poll_set for poll information 2023-10-25 09:34:32 +02:00
http_proxy.h http: h1/h2 proxy unification 2023-09-25 20:12:18 +02:00
idn.c idn: fix WinIDN null ptr deref on bad host 2023-10-05 03:11:41 -04:00
idn.h urlapi: return CURLUE_BAD_HOSTNAME if puny2idn encoding fails 2023-08-17 08:21:08 +02:00
if2ip.c lib: --disable-bindlocal builds curl without local binding support 2023-08-17 17:17:59 +02:00
if2ip.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
imap.c imap: add a check for failing strdup() 2023-08-14 18:07:12 +02:00
imap.h misc: reduce struct and struct field sizes 2023-01-04 15:36:36 +01:00
inet_ntop.c inet_ntop: add typecast to silence Coverity 2023-09-27 13:18:22 +02:00
inet_ntop.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
inet_pton.c urlapi: parse IPv6 literals without ENABLE_IPV6 2023-03-03 10:05:08 +01:00
inet_pton.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
krb5.c krb5: fix "implicit conversion loses integer precision" warnings 2023-09-07 16:17:13 +02:00
ldap.c lib: let the max filesize option stop too big transfers too 2023-09-23 11:20:20 +02:00
libcurl.plist.in macos: set .plist version in autoconf 2022-04-20 15:26:13 +02:00
libcurl.rc copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
libcurl.vers.in configure: use XC_LIBTOOL for portability across libtool versions 2013-03-08 13:27:45 +01:00
llist.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
llist.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
macos.c macOS: fix target detection more 2023-07-29 23:42:53 +02:00
macos.h macOS: fix target detection more 2023-07-29 23:42:53 +02:00
Makefile.am copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
Makefile.inc build: alpha-sort source files for lib and src 2023-10-03 12:58:17 +00:00
Makefile.mk Makefile.mk: always set CURL_STATICLIB for lib (Windows) 2023-09-23 20:42:47 +00:00
Makefile.soname copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
md4.c crypto: ensure crypto initialization works 2023-08-08 10:44:01 +02:00
md5.c lib: add ability to disable auths individually 2023-09-07 17:45:06 +02:00
memdebug.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
memdebug.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
mime.c misc: better random strings 2023-09-16 11:37:57 +02:00
mime.h misc: better random strings 2023-09-16 11:37:57 +02:00
mprintf.c checksrc: disallow spaces before labels 2023-05-18 20:45:04 +02:00
mqtt.c MQTT: improve receive of ACKs 2023-10-09 18:34:17 +02:00
mqtt.h MQTT: improve receive of ACKs 2023-10-09 18:34:17 +02:00
multi.c lib: introduce struct easy_poll_set for poll information 2023-10-25 09:34:32 +02:00
multihandle.h multi: remove PENDING + MSGSENT handles from the main linked list 2023-03-26 17:43:28 +02:00
multiif.h multiif.h: remove Curl_multi_dump declaration 2023-09-26 03:51:13 -04:00
netrc.c checksrc: disallow spaces before labels 2023-05-18 20:45:04 +02:00
netrc.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
nonblock.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
nonblock.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
noproxy.c noproxy: pointer to local array 'hostip' is stored outside scope 2023-04-12 09:00:20 +02:00
noproxy.h noproxy: support for space-separated names is deprecated 2023-01-04 09:15:37 +01:00
openldap.c openldap: move the alloc of ldapconninfo to *connect() 2023-10-21 14:42:30 +02:00
optiontable.pl easyoptions: Fix header printing in generation script 2023-01-12 14:59:38 +01:00
parsedate.c checksrc: disallow spaces before labels 2023-05-18 20:45:04 +02:00
parsedate.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
pingpong.c lib: disambiguate Curl_client_write flag semantics 2023-09-21 08:56:50 +02:00
pingpong.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
pop3.c lib: add ability to disable auths individually 2023-09-07 17:45:06 +02:00
pop3.h misc: reduce struct and struct field sizes 2023-01-04 15:36:36 +01:00
progress.c lib: let the max filesize option stop too big transfers too 2023-09-23 11:20:20 +02:00
progress.h lib: let the max filesize option stop too big transfers too 2023-09-23 11:20:20 +02:00
psl.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
psl.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
rand.c lib: provide and use Curl_hexencode 2023-09-30 11:45:39 +02:00
rand.h misc: better random strings 2023-09-16 11:37:57 +02:00
rename.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
rename.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
rtsp.c RTSP: improved RTP parser 2023-10-21 14:38:21 +02:00
rtsp.h RTSP: improved RTP parser 2023-10-21 14:38:21 +02:00
select.c select: avoid returning an error on EINTR from select() or poll() 2023-05-19 16:16:26 +02:00
select.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
sendf.c lib: move handling of data->req.writer_stack into Curl_client_write() 2023-09-28 10:00:13 +02:00
sendf.h spelling: fix codespell 2.2.6 typos 2023-10-03 21:37:56 +00:00
setopt.c tidy-up: whitespace fixes 2023-09-28 12:03:28 +00:00
setopt.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
setup-os400.h os400: implement CLI tool 2023-08-30 11:38:27 +02:00
setup-vms.h egd: delete feature detection and related source code 2023-08-01 21:58:56 +00:00
setup-win32.h cmake: pre-fill rest of detection values for Windows 2023-10-24 21:06:36 +00:00
sha256.c lib: add ability to disable auths individually 2023-09-07 17:45:06 +02:00
share.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
share.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
sigpipe.h build: delete checks for C89 standard headers 2023-09-26 14:25:10 +00: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 lib: let the max filesize option stop too big transfers too 2023-09-23 11:20:20 +02:00
smb.h cmake: add support for "unity" builds 2023-06-07 13:06:08 +00:00
smtp.c cmake: cache more config and delete unused ones 2023-08-01 21:59:00 +00:00
smtp.h misc: reduce struct and struct field sizes 2023-01-04 15:36:36 +01:00
sockaddr.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
socketpair.c checksrc: disallow spaces before labels 2023-05-18 20:45:04 +02:00
socketpair.h asyn-thread: use pipe instead of socketpair for IPC when available 2023-10-18 08:23:53 +02:00
socks.c lib: introduce struct easy_poll_set for poll information 2023-10-25 09:34:32 +02:00
socks.h lib: remove unused functions, make single-use static 2023-05-23 11:08:51 +02:00
socks_gssapi.c cf-socket: improvements in socket I/O handling 2023-01-31 11:23:59 +01:00
socks_sspi.c cf-socket: improvements in socket I/O handling 2023-01-31 11:23:59 +01:00
speedcheck.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
speedcheck.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
splay.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
splay.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
strcase.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
strcase.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
strdup.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
strdup.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
strerror.c lib: fix a few *printf() flag mistakes 2023-08-02 23:11:09 +02:00
strerror.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
strtok.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
strtok.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
strtoofft.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
strtoofft.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
system_win32.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
system_win32.h easy: remove #ifdefs to make code easier on the eye 2023-07-26 23:57:08 +02:00
telnet.c lib: let the max filesize option stop too big transfers too 2023-09-23 11:20:20 +02:00
telnet.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
tftp.c lib: let the max filesize option stop too big transfers too 2023-09-23 11:20:20 +02:00
tftp.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
timediff.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
timediff.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
timeval.c multi: round the timeout up to prevent early wakeups 2023-09-28 09:52:20 +02:00
timeval.h multi: round the timeout up to prevent early wakeups 2023-09-28 09:52:20 +02:00
transfer.c RTSP: improved RTP parser 2023-10-21 14:38:21 +02:00
transfer.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
url.c urldata: move the 'internal' boolean to the state struct 2023-10-20 16:59:52 +02:00
url.h lib: remove unused functions, make single-use static 2023-05-23 11:08:51 +02:00
urlapi-int.h urlapi: make internal function start with Curl_ 2023-04-27 08:36:51 +02:00
urlapi.c tidy-up: use more example domains 2023-09-29 18:25:56 +00:00
urldata.h lib: introduce struct easy_poll_set for poll information 2023-10-25 09:34:32 +02:00
version.c cmake: add support for "unity" builds 2023-06-07 13:06:08 +00:00
version_win32.c copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
version_win32.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
warnless.c warnless: remove unused functions 2023-09-25 17:06:33 +02:00
warnless.h cmake: add support for "unity" builds 2023-06-07 13:06:08 +00:00
ws.c websocket: rename arguments/variables to match docs 2023-07-22 00:31:31 +02:00
ws.h Websocket en-/decoding 2023-04-25 23:16:51 +02:00