cURL / Mailing Lists / curl-library / Single Mail

curl-library

Curl 7.38 gets stuck in SSL Handshake with Proxies

From: Alibek Joraev <alibek.joraev_at_gmail.com>
Date: Wed, 8 Oct 2014 15:14:09 +0100

Case:
Curl version 7.38:

Client does HTTPS GET to https://www.google.com via Proxy which requires
authentication (in this case, Basic, but same error happens with NTLM and
Negotiate too) - authentication with Proxy goes fine:

*GDCurl: Read response immediately from proxy CONNECT*

*GDCurl: HTTP/1.0 200 Connection established*

*GDCurl: Proxy replied OK to CONNECT request*

then it tries to create SSL layer over established TCP connection:

*GDCurl: SSLv3, TLS handshake, Client hello (1):*

*GDCurl: STATE: WAITPROXYCONNECT => WAITCONNECT handle 0x7fd41c81a008; line
1181 (connection #1)*

*socketCallback Host: www.google.com <http://www.google.com>. Port: 443.
Socket: 18.*

After that Curl gets stuck in WAITCONNECT. state. Wireshark shows that
Curl gets back "Server Hello", but does not
proceed with sending key exchange message.

Same scenario works fine with HTTP. That is, Proxy still requires auth, but
final destination is http://www.google.com.

I faced this problem when I upgrades from Curl 7.24 to 7.38.
Curl 7.24 handles this scenarios correctly (same testcase, but still
linking to 7.24). I build Curl myself, from sources.
OS: iOS 7.

Curl 7.24 undergoes withs state transitions:

GDCurl: STATE: WAITPROXYCONNECT => WAITCONNECT
GDCurl: STATE: WAITCONNECT => PROTOCONNECT

while Curl 7.38 goes from WAITPROXYCONNECT to WAITCONNECT and then remains
stuck in this state.

any ideas what could be root cause of this error?
Perhaps new Curl requires some explicit configuration? or it could be some
inner regression?

regards,
Alibek

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2014-10-08