curl/lib
Stefan Eissing 5c7bf5fe59
imap: TLS upgrade fix
There were two places in the code that tried to connect the SSL filter,
e.g. do the TLS handshake, but only one changed imap state to CAPA
afterwards.

Depending on timing, the wrong path was taken and the connection was
hanging, waiting for a server reply to a command not sent.

Do the upgrade to tls in one place and update connection filter and
smtps protocol handler at the same time. Always transition to CAPA on
success.

Closes #16213
2025-02-07 10:13:12 +01:00
..
vauth tidy-up: drop parenthesis around return expression 2025-01-14 12:11:42 +01:00
vquic ngtcp2: fix memory leak on connect failure 2025-01-28 14:12:42 +01:00
vssh libssh: drop support for libssh older than 0.9.0 2025-02-06 22:27:13 +01:00
vtls configure/cmake: check for realpath 2025-02-07 09:45:20 +01:00
.checksrc
.gitignore gitignore: add lib/Makefile.soname.cmake 2025-01-28 16:04:29 +01:00
altsvc.c doh: send HTTPS RR requests for all HTTP(S) transfers 2025-01-15 12:55:15 +01:00
altsvc.h doh: send HTTPS RR requests for all HTTP(S) transfers 2025-01-15 12:55:15 +01:00
amigaos.c
amigaos.h
arpa_telnet.h
asyn-ares.c c-ares: fix/tidy-up macro initializations, avoid a deprecated function 2025-02-03 19:04:50 +01:00
asyn-thread.c asyn-thread: fix the returned bitmask from Curl_resolver_getsock 2025-02-07 09:49:14 +01:00
asyn.h asyn-thread: fix HTTPS RR crash 2025-02-05 14:05:22 +01:00
base64.c
bufq.c websocket: fix message send corruption 2025-01-16 16:19:07 -05:00
bufq.h websocket: fix message send corruption 2025-01-16 16:19:07 -05:00
bufref.c
bufref.h
cf-h1-proxy.c tidy-up: drop parenthesis around return expression 2025-01-14 12:11:42 +01:00
cf-h1-proxy.h
cf-h2-proxy.c
cf-h2-proxy.h
cf-haproxy.c
cf-haproxy.h
cf-https-connect.c https-connect: start next immediately on failure 2025-01-28 15:40:33 +01:00
cf-https-connect.h
cf-socket.c TLS: check connection for SSL use, not handler 2025-01-17 14:04:20 +01:00
cf-socket.h
cfilters.c cfilters: silence compiler warning 2025-02-05 01:12:18 +01:00
cfilters.h lib: clarify 'conn->httpversion' 2025-01-24 10:59:02 +01:00
CMakeLists.txt cmake: initialize variables where missing 2025-02-06 23:32:37 +01:00
config-mac.h
config-os400.h
config-plan9.h openssl: drop unused HAVE_SSL_GET_SHUTDOWN macro 2025-01-28 11:15:09 +01:00
config-riscos.h
config-win32.h ldap: drop support for legacy Novell LDAP SDK 2025-02-06 23:45:05 +01:00
conncache.c curl_multi_fdset: include the shutdown connections in the set 2025-01-22 07:55:31 +01:00
conncache.h curl_multi_fdset: include the shutdown connections in the set 2025-01-22 07:55:31 +01:00
connect.c doh: send HTTPS RR requests for all HTTP(S) transfers 2025-01-15 12:55:15 +01:00
connect.h doh: send HTTPS RR requests for all HTTP(S) transfers 2025-01-15 12:55:15 +01:00
content_encoding.c content_encoding: #error on too old zlib 2025-02-06 10:26:23 +01:00
content_encoding.h
cookie.c tidy-up: drop parenthesis around return expression 2025-01-14 12:11:42 +01:00
cookie.h
curl_addrinfo.c
curl_addrinfo.h
curl_base64.h
curl_config.h.cmake configure/cmake: check for realpath 2025-02-07 09:45:20 +01:00
curl_ctype.h
curl_des.c
curl_des.h
curl_endian.c
curl_endian.h
curl_fnmatch.c
curl_fnmatch.h
curl_get_line.c
curl_get_line.h
curl_gethostname.c
curl_gethostname.h
curl_gssapi.c
curl_gssapi.h
curl_hmac.h sha256/hmac: use these with TLS builds now 2025-01-14 12:13:59 +01:00
curl_krb5.h
curl_ldap.h
curl_md4.h
curl_md5.h
curl_memory.h
curl_memrchr.c
curl_memrchr.h
curl_multibyte.c tidy-up: drop parenthesis around return expression 2025-01-14 12:11:42 +01:00
curl_multibyte.h
curl_ntlm_core.c
curl_ntlm_core.h
curl_printf.h
curl_range.c
curl_range.h
curl_rtmp.c lib: redirect handling by protocol handler 2025-01-24 11:00:34 +01:00
curl_rtmp.h
curl_sasl.c
curl_sasl.h
curl_setup_once.h
curl_setup.h build: drop macro used to enable -Wsign-conversion warnings in CI 2025-02-03 22:28:08 +01:00
curl_sha256.h sha256/hmac: use these with TLS builds now 2025-01-14 12:13:59 +01:00
curl_sha512_256.c
curl_sha512_256.h
curl_sspi.c
curl_sspi.h windows: drop dupe macros, detect CURL_OS for WinCE ARM, indentation 2025-01-17 12:56:43 +01:00
curl_threads.c
curl_threads.h
curl_trc.c
curl_trc.h
curlx.h
cw-out.c
cw-out.h
dict.c lib: redirect handling by protocol handler 2025-01-24 11:00:34 +01:00
dict.h
dllmain.c
doh.c asyn-ares: initial HTTPS resolve support 2025-01-19 11:25:09 +01:00
doh.h asyn-ares: initial HTTPS resolve support 2025-01-19 11:25:09 +01:00
dynbuf.c
dynbuf.h
dynhds.c
dynhds.h
easy_lock.h easy_lock: use Sleep(1) for thread yield on old Windows 2025-01-21 01:45:21 -05:00
easy.c easy: allow connect-only handle reuse with easy_perform 2025-01-28 03:27:04 -05:00
easygetopt.c
easyif.h
easyoptions.c tidy-up: drop parenthesis around return expression 2025-01-14 12:11:42 +01:00
easyoptions.h
escape.c
escape.h
file.c lib: redirect handling by protocol handler 2025-01-24 11:00:34 +01:00
file.h
fileinfo.c
fileinfo.h
fopen.c
fopen.h
formdata.c
formdata.h
ftp.c msvc: add missing push/pop for warning pragmas 2025-01-27 20:59:47 +01:00
ftp.h
ftplistparser.c
ftplistparser.h
functypes.h
getenv.c
getinfo.c
getinfo.h
gopher.c lib: redirect handling by protocol handler 2025-01-24 11:00:34 +01:00
gopher.h
hash.c
hash.h
headers.c
headers.h
hmac.c sha256/hmac: use these with TLS builds now 2025-01-14 12:13:59 +01:00
hostasyn.c
hostip4.c
hostip6.c
hostip.c doh: send HTTPS RR requests for all HTTP(S) transfers 2025-01-15 12:55:15 +01:00
hostip.h asyn-thread: use c-ares to resolve HTTPS RR 2025-01-25 23:46:14 +01:00
hostsyn.c
hsts.c
hsts.h
http1.c
http1.h
http2.c http2: fix data_pending check 2025-01-27 15:46:33 +01:00
http2.h lib: clarify 'conn->httpversion' 2025-01-24 10:59:02 +01:00
http_aws_sigv4.c
http_aws_sigv4.h
http_chunks.c
http_chunks.h
http_digest.c
http_digest.h
http_negotiate.c TLS: check connection for SSL use, not handler 2025-01-17 14:04:20 +01:00
http_negotiate.h
http_ntlm.c
http_ntlm.h
http_proxy.c lib: clarify 'conn->httpversion' 2025-01-24 10:59:02 +01:00
http_proxy.h
http.c lib: redirect handling by protocol handler 2025-01-24 11:00:34 +01:00
http.h lib: redirect handling by protocol handler 2025-01-24 11:00:34 +01:00
httpsrr.c asyn-thread: use c-ares to resolve HTTPS RR 2025-01-25 23:46:14 +01:00
httpsrr.h asyn-thread: use c-ares to resolve HTTPS RR 2025-01-25 23:46:14 +01:00
idn.c
idn.h
if2ip.c
if2ip.h
imap.c imap: TLS upgrade fix 2025-02-07 10:13:12 +01:00
imap.h
inet_ntop.c
inet_ntop.h lib: include necessary headers for inet_ntop/inet_pton 2025-02-05 16:29:03 +01:00
inet_pton.c
inet_pton.h lib: include necessary headers for inet_ntop/inet_pton 2025-02-05 16:29:03 +01:00
krb5.c
ldap.c ldap: drop support for legacy Novell LDAP SDK 2025-02-06 23:45:05 +01:00
libcurl.def
libcurl.rc
libcurl.vers.in
llist.c
llist.h
macos.c
macos.h
Makefile.am checksrc: exclude generated bundle files to avoid race condition 2025-01-27 20:59:47 +01:00
Makefile.inc tidy-up: .gitignore lines mostly 2025-01-27 20:59:46 +01:00
Makefile.soname
md4.c
md5.c
memdebug.c tidy-up: drop parenthesis around return expression 2025-01-14 12:11:42 +01:00
memdebug.h
mime.c tidy-up: drop parenthesis around return expression 2025-01-14 12:11:42 +01:00
mime.h
mprintf.c
mqtt.c lib: redirect handling by protocol handler 2025-01-24 11:00:34 +01:00
mqtt.h
multi.c urldata: tweak the UserDefined struct 2025-01-27 15:47:18 +01:00
multihandle.h
multiif.h
netrc.c netrc: return code cleanup, fix missing file error 2025-02-06 10:34:02 +01:00
netrc.h netrc: return code cleanup, fix missing file error 2025-02-06 10:34:02 +01:00
nonblock.c
nonblock.h
noproxy.c tidy-up: drop parenthesis around return expression 2025-01-14 12:11:42 +01:00
noproxy.h
openldap.c lib: redirect handling by protocol handler 2025-01-24 11:00:34 +01:00
optiontable.pl tidy-up: drop parenthesis around return expression 2025-01-14 12:11:42 +01:00
parsedate.c
parsedate.h
pingpong.c tidy-up: drop parenthesis around return expression 2025-01-14 12:11:42 +01:00
pingpong.h
pop3.c pop3: TLS upgrade fix 2025-02-07 10:11:20 +01:00
pop3.h
progress.c tidy-up: drop parenthesis around return expression 2025-01-14 12:11:42 +01:00
progress.h
psl.c
psl.h
rand.c
rand.h
rename.c
rename.h
request.c lib: clarify 'conn->httpversion' 2025-01-24 10:59:02 +01:00
request.h lib: clarify 'conn->httpversion' 2025-01-24 10:59:02 +01:00
rtsp.c lib: redirect handling by protocol handler 2025-01-24 11:00:34 +01:00
rtsp.h
select.c curl_multi_fdset: include the shutdown connections in the set 2025-01-22 07:55:31 +01:00
select.h curl_multi_fdset: include the shutdown connections in the set 2025-01-22 07:55:31 +01:00
sendf.c
sendf.h
setopt.c CURLOPT_SSH_KNOWNHOSTS.md: strongly recommend using this 2025-02-06 13:51:50 +01:00
setopt.h
setup-os400.h
setup-vms.h
setup-win32.h windows: drop dupe macros, detect CURL_OS for WinCE ARM, indentation 2025-01-17 12:56:43 +01:00
sha256.c sha256/hmac: use these with TLS builds now 2025-01-14 12:13:59 +01:00
share.c
share.h
sigpipe.h
slist.c
slist.h
smb.c smb: silence -Warray-bounds with gcc 13+ 2025-02-05 16:29:03 +01:00
smb.h
smtp.c smtp: TLS upgrade fix 2025-02-07 10:09:35 +01:00
smtp.h
sockaddr.h
socketpair.c
socketpair.h
socks_gssapi.c
socks_sspi.c
socks.c
socks.h
speedcheck.c
speedcheck.h
splay.c
splay.h
strcase.c tidy-up: drop parenthesis around return expression 2025-01-14 12:11:42 +01:00
strcase.h
strdup.c
strdup.h
strerror.c tidy-up: drop parenthesis around return expression 2025-01-14 12:11:42 +01:00
strerror.h
strparse.c
strparse.h
strtok.c
strtok.h
strtoofft.c
strtoofft.h
system_win32.c
system_win32.h
telnet.c msvc: add missing push/pop for warning pragmas 2025-01-27 20:59:47 +01:00
telnet.h
tftp.c lib: redirect handling by protocol handler 2025-01-24 11:00:34 +01:00
tftp.h
timediff.c
timediff.h
timeval.c
timeval.h
transfer.c transfer: replace false with FALSE 2025-02-05 02:56:01 +01:00
transfer.h lib: redirect handling by protocol handler 2025-01-24 11:00:34 +01:00
url.c netrc: return code cleanup, fix missing file error 2025-02-06 10:34:02 +01:00
url.h
urlapi-int.h
urlapi.c
urldata.h urldata: tweak the UserDefined struct 2025-01-27 15:47:18 +01:00
version_win32.c
version_win32.h
version.c c-ares: fix/tidy-up macro initializations, avoid a deprecated function 2025-02-03 19:04:50 +01:00
warnless.c msvc: add missing push/pop for warning pragmas 2025-01-27 20:59:47 +01:00
warnless.h
ws.c ws: Reject frames with unknown reserved bits set 2025-01-28 10:19:39 +01:00
ws.h websocket: fix message send corruption 2025-01-16 16:19:07 -05:00