summaryrefslogtreecommitdiff
path: root/lib/Makefile.inc
diff options
context:
space:
mode:
authorStefan Eissing <stefan@eissing.org>2023-03-20 14:23:53 +0100
committerDaniel Stenberg <daniel@haxx.se>2023-03-30 09:08:05 +0200
commit61f52a97e9fd1bb79f1b312fe031ceb95fd13d27 (patch)
treea66c5448188d73f07fe4a8f3e9a971208e794fa5 /lib/Makefile.inc
parent8cabef6fc312b7a59e2cbf73fabd9f3cc2b459ba (diff)
downloadcurl-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.inc4
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 \