mirror of
https://github.com/curl/curl.git
synced 2024-12-15 06:40:09 +08:00
61f52a97e9
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
23 lines
200 B
Plaintext
23 lines
200 B
Plaintext
<testcase>
|
|
<info>
|
|
<keywords>
|
|
unittest
|
|
bufq
|
|
</keywords>
|
|
</info>
|
|
|
|
#
|
|
# Client-side
|
|
<client>
|
|
<server>
|
|
none
|
|
</server>
|
|
<features>
|
|
unittest
|
|
</features>
|
|
<name>
|
|
bufq unit tests
|
|
</name>
|
|
</client>
|
|
</testcase>
|