diff options
author | Stefan Eissing <stefan@eissing.org> | 2023-03-20 14:23:53 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2023-03-30 09:08:05 +0200 |
commit | 61f52a97e9fd1bb79f1b312fe031ceb95fd13d27 (patch) | |
tree | a66c5448188d73f07fe4a8f3e9a971208e794fa5 /lib/Makefile.inc | |
parent | 8cabef6fc312b7a59e2cbf73fabd9f3cc2b459ba (diff) | |
download | curl-61f52a97e9fd1bb79f1b312fe031ceb95fd13d27.tar.gz |
lib: add `bufq` and `dynhds`
Adding `bufq`:
- at init() time configured to hold up to `n` chunks of `m` bytes each.
- various methods for reading from and writing to it.
- `peek` support to get access to buffered data without copy
- `pass` support to allow buffer flushing on write if it becomes full
- use case: IO buffers for dynamic reads and writes that do not blow up
- distinct from `dynbuf` in that:
- it maintains a read position
- writes on a full bufq return CURLE_AGAIN instead of nuking itself
- Init options:
- SOFT_LIMIT: allow writes into a full bufq
- NO_SPARES: free empty chunks right away
- a `bufc_pool` that can keep a number of spare chunks to
be shared between different `bufq` instances
Adding `dynhds`:
- a straightforward list of name+value pairs as used for HTTP headers
- headers can be appended dynamically
- headers can be removed again
- headers can be replaced
- headers can be looked up
- http/1.1 formatting into a `dynbuf`
- configured at init() with limits on header counts and total string
sizes
- use case: pass a HTTP request or response around without being version
specific
- express a HTTP request without a curl easy handle (used in h2 proxy
tunnels)
- future extension possibilities:
- conversions of `dynhds` to nghttp2/nghttp3 name+value arrays
Closes #10720
Diffstat (limited to 'lib/Makefile.inc')
-rw-r--r-- | lib/Makefile.inc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Makefile.inc b/lib/Makefile.inc index 663190a19..9a7245986 100644 --- a/lib/Makefile.inc +++ b/lib/Makefile.inc @@ -105,6 +105,7 @@ LIB_CFILES = \ asyn-ares.c \ asyn-thread.c \ base64.c \ + bufq.c \ bufref.c \ c-hyper.c \ cf-https-connect.c \ @@ -135,6 +136,7 @@ LIB_CFILES = \ dict.c \ doh.c \ dynbuf.c \ + dynhds.c \ easy.c \ easygetopt.c \ easyoptions.c \ @@ -230,6 +232,7 @@ LIB_HFILES = \ amigaos.h \ arpa_telnet.h \ asyn.h \ + bufq.h \ bufref.h \ c-hyper.h \ cf-https-connect.h \ @@ -273,6 +276,7 @@ LIB_HFILES = \ dict.h \ doh.h \ dynbuf.h \ + dynhds.h \ easy_lock.h \ easyif.h \ easyoptions.h \ |