vtls: unify the error handling in ssl_cf_connect().

Check preference at first, then init peer and do connect. Also fixes
CF_DATA_RESTORE.

Closes #19196
This commit is contained in:
x2018 2025-10-22 21:45:07 +08:00 committed by Daniel Stenberg
parent 28ebaf86ce
commit 6032b8f2a2
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2

View file

@ -1365,6 +1365,15 @@ static CURLcode ssl_cf_connect(struct Curl_cfilter *cf,
DEBUGASSERT(connssl);
*done = FALSE;
if(!connssl->prefs_checked) {
if(!ssl_prefs_check(data)) {
result = CURLE_SSL_CONNECT_ERROR;
goto out;
}
connssl->prefs_checked = TRUE;
}
if(!connssl->peer.hostname) {
char tls_id[80];
connssl->ssl_impl->version(tls_id, sizeof(tls_id) - 1);
@ -1373,12 +1382,6 @@ static CURLcode ssl_cf_connect(struct Curl_cfilter *cf,
goto out;
}
if(!connssl->prefs_checked) {
if(!ssl_prefs_check(data))
return CURLE_SSL_CONNECT_ERROR;
connssl->prefs_checked = TRUE;
}
result = connssl->ssl_impl->do_connect(cf, data, done);
if(!result && *done) {