diff options
author | Jay Satiro <raysatiro@yahoo.com> | 2019-04-12 18:57:53 -0400 |
---|---|---|
committer | Jay Satiro <raysatiro@yahoo.com> | 2019-09-26 03:04:26 -0400 |
commit | cded9937007a1cad58dc66b62109b27d70b69b90 (patch) | |
tree | 9699f3d9b411b783e7f4e10079abc4ba5890f3bc | |
parent | 217812fa9ec9417edbcafae90ec50402faacba96 (diff) | |
download | curl-cded9937007a1cad58dc66b62109b27d70b69b90.tar.gz |
url: don't set appconnect time for non-ssl/non-ssh connections
Prior to this change non-ssl/non-ssh connections that were reused set
TIMER_APPCONNECT [1]. Arguably that was incorrect since no SSL/SSH
handshake took place.
[1]: TIMER_APPCONNECT is publicly known as CURLINFO_APPCONNECT_TIME in
libcurl and %{time_appconnect} in the curl tool. It is documented as
"the time until the SSL/SSH handshake is completed".
Reported-by: Marcel Hernandez
Ref: https://github.com/curl/curl/issues/3760
Closes https://github.com/curl/curl/pull/3773
-rw-r--r-- | lib/url.c | 4 | ||||
-rw-r--r-- | lib/urldata.h | 1 |
2 files changed, 4 insertions, 1 deletions
@@ -3815,7 +3815,9 @@ CURLcode Curl_setup_conn(struct connectdata *conn, } else { Curl_pgrsTime(data, TIMER_CONNECT); /* we're connected already */ - Curl_pgrsTime(data, TIMER_APPCONNECT); /* we're connected already */ + if(conn->ssl[FIRSTSOCKET].use || + (conn->handler->protocol & PROTO_FAMILY_SSH)) + Curl_pgrsTime(data, TIMER_APPCONNECT); /* we're connected already */ conn->bits.tcpconnect[FIRSTSOCKET] = TRUE; *protocol_done = TRUE; Curl_updateconninfo(conn, conn->sock[FIRSTSOCKET]); diff --git a/lib/urldata.h b/lib/urldata.h index 310d93d18..2700bc2a6 100644 --- a/lib/urldata.h +++ b/lib/urldata.h @@ -68,6 +68,7 @@ #define PROTO_FAMILY_POP3 (CURLPROTO_POP3|CURLPROTO_POP3S) #define PROTO_FAMILY_SMB (CURLPROTO_SMB|CURLPROTO_SMBS) #define PROTO_FAMILY_SMTP (CURLPROTO_SMTP|CURLPROTO_SMTPS) +#define PROTO_FAMILY_SSH (CURLPROTO_SCP|CURLPROTO_SFTP) #define DEFAULT_CONNCACHE_SIZE 5 |