summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaƫl PORTAY <gael.portay@gmail.com>2014-03-19 15:56:13 +0100
committerDaniel Stenberg <daniel@haxx.se>2014-03-19 16:10:18 +0100
commit47f8e99e78c3e415b32ffb692c9b150929432dc1 (patch)
tree27cabee086d00c81fad5cd2bf47b735f7298f558
parentff25f437a5f684b43893f4526b30a4b06421ee38 (diff)
downloadgnurl-47f8e99e78c3e415b32ffb692c9b150929432dc1.tar.gz
gnurl-47f8e99e78c3e415b32ffb692c9b150929432dc1.tar.bz2
gnurl-47f8e99e78c3e415b32ffb692c9b150929432dc1.zip
polarssl: fix possible handshake timeout issue in multi.
Because of the socket is unblocking, PolarSSL does need call to getsock to get the action to perform in multi environment. In some cases, it might happen we have not received yet all data to perform the handshake. ssh_handshake returns POLARSSL_ERR_NET_WANT_READ, the state is updated but because of the getsock has not the proper #define macro to, the library never prevents to select socket for input thus the socket will never be awaken when last data is available. Thus it leads to timeout.
-rw-r--r--lib/http.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/http.c b/lib/http.c
index 4ec38735a..558699967 100644
--- a/lib/http.c
+++ b/lib/http.c
@@ -1361,8 +1361,8 @@ static CURLcode https_connecting(struct connectdata *conn, bool *done)
#endif
#if defined(USE_SSLEAY) || defined(USE_GNUTLS) || defined(USE_SCHANNEL) || \
- defined(USE_DARWINSSL)
-/* This function is for OpenSSL, GnuTLS, darwinssl, and schannel only.
+ defined(USE_DARWINSSL) || defined(USE_POLARSSL)
+/* This function is for OpenSSL, GnuTLS, darwinssl, schannel and polarssl only.
It should be made to query the generic SSL layer instead. */
static int https_getsock(struct connectdata *conn,
curl_socket_t *socks,