mirror of
https://github.com/curl/curl.git
synced 2026-07-26 19:17:22 +03:00
lib: TLS session ticket caching reworked
Described in detail in internal doc TLS-SESSIONS.md Main points: - use a new `ssl_peer_key` for cache lookups by connection filters - recognize differences between TLSv1.3 and other tickets * TLSv1.3 tickets are single-use, cache can hold several of them for a peer * TLSv1.2 are reused, keep only a single one per peer - differentiate between ticket BLOB to store (that could be persisted) and object instances - use put/take/return pattern for cache access - remember TLS version, ALPN protocol, time received and lifetime of ticket - auto-expire tickets after their lifetime Closes #15774
This commit is contained in:
parent
e5e2e09a75
commit
fa0ccd9f1f
36 changed files with 1784 additions and 780 deletions
|
|
@ -132,3 +132,14 @@ CURLcode Curl_dyn_setlen(struct dynbuf *s, size_t len);
|
|||
Sets the new shorter length of the buffer in number of bytes. Keeps the
|
||||
leftmost set number of bytes, discards the rest. To instead keep the tail part
|
||||
of the buffer, see `Curl_dyn_tail()`.
|
||||
|
||||
## `Curl_dyn_take`
|
||||
|
||||
```c
|
||||
char *Curl_dyn_take(struct dynbuf *s, size_t *plen);
|
||||
```
|
||||
|
||||
Transfers ownership of the internal buffer to the caller. The dynbuf
|
||||
resets to its initial state. The returned pointer may be `NULL` if the
|
||||
dynbuf never allocated memory. The returned length is the amount of
|
||||
data written to the buffer. The actual allocated memory might be larger.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue