Repository navigation
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Schannel proxy verification is unintentionally disabled, and the updated unit test clears the configuration it intends to validate.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Moves TLS connection-matching configuration from easy handles to temporary matcher state, reducing handle size and ensuring backends use connection-specific settings.
Changes:
- Builds and clones TLS configuration during connection matching.
- Updates TLS backends to consume connection-owned configuration.
- Preserves SSH key passphrases independently of the easy handle.
File summaries
| File | Description |
|---|---|
tests/unit/unit3303.c |
Adapts TLS configuration matching tests. |
lib/vtls/wolfssl.c |
Uses connection TLS settings. |
lib/vtls/vtls.c |
Validates connection TLS preferences. |
lib/vtls/vtls_scache.c |
Uses connection settings for session caching. |
lib/vtls/vtls_config.h |
Redefines TLS configuration structures and APIs. |
lib/vtls/vtls_config.c |
Builds, matches, and clones connection TLS settings. |
lib/vtls/schannel.c |
Uses connection revocation settings. |
lib/vtls/schannel_verify.c |
Uses connection verification settings. |
lib/vtls/rustls.c |
Sources client credentials from the connection. |
lib/vtls/openssl.c |
Sources TLS options and credentials from the connection. |
lib/vtls/mbedtls.c |
Sources certificates and keys from the connection. |
lib/vtls/gtls.c |
Sources credentials and early-data settings from the connection. |
lib/vtls/apple.c |
Uses connection revocation settings. |
lib/vssh/vssh.c |
Copies SSH passphrases into connection state. |
lib/vssh/ssh.h |
Makes the SSH passphrase connection-owned. |
lib/vssh/libssh2.c |
Uses and frees the copied passphrase. |
lib/vssh/libssh.c |
Uses and frees the copied passphrase. |
lib/vdns/doh.c |
Reads SSL options from the compact easy configuration. |
lib/url.c |
Creates stack-based matching configuration. |
lib/setopt.c |
Stores TLS options directly in easy configuration. |
lib/ldap.c |
Uses connection certificate type. |
Review details
- Files reviewed: 21/21 changed files
- Comments generated: 4
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
icing
force-pushed
the
move-ssl_primary_config
branch
2 times, most recently
from
September 11, 2026 06:46
e61a657 to
76e0b33
Compare
Rename the two structs for clarity: - `ssl_config_data` -> `ssl_easy_config` - `ssl_primary_config` -> `ssl_filter_config` The easy handle owned 2 `struct ssl_primary_config` when curl is built with proxy support. These structs were only intended for use during connection matching and, for a new connection, cloned into the `connectdata` struct. Their presence in the easy handle led to some misuses as they only contained "shallow" references there to config data that may change unnoticed. Remove these from the easy handle and keep them in the url connection matcher on the stack. Removal also found several places in TLS backends where the struct from the easy handle was used wrongly instead of the connection's version. This should shrink the easy handle by another ~300 bytes.
icing
force-pushed
the
move-ssl_primary_config
branch
from
September 11, 2026 07:26
3be7cdd to
807a1e7
Compare
rename init/clone function to better reflect what they do
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The easy handle owned 2
struct ssl_primary_configwhen curl is built with proxy support. These structs were basically only used during connection matching and, for a new connection, cloned into theconnectdatastruct.Remove these from the easy handle and keep them in the url connection matcher on the stack.
Removal also found several places in TLS backends where the struct from the easy handle was used wrongly instead of the connection's version.
This should shrink the easy handle by another 300+ bytes.