diff options
author | Kamil Dudka <kdudka@redhat.com> | 2009-11-12 11:16:31 +0000 |
---|---|---|
committer | Kamil Dudka <kdudka@redhat.com> | 2009-11-12 11:16:31 +0000 |
commit | 571309dc3edaf1c03ff6fdfbcf551875644b5a7f (patch) | |
tree | 4d9a937fdb822578e6899d657c7d1bd324d23c8f /lib/transfer.c | |
parent | d547d00f2cfa69e07d6873bbebbc82f3132f1b82 (diff) |
- libcurl-NSS now tries to reconnect with TLS disabled in case it detects
a broken TLS server. However it does not happen if SSL version is selected
manually. The approach was originally taken from PSM. Kaspar Brand helped me
to complete the patch. Original bug reports:
https://bugzilla.redhat.com/525496
https://bugzilla.redhat.com/527771
Diffstat (limited to 'lib/transfer.c')
-rw-r--r-- | lib/transfer.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/transfer.c b/lib/transfer.c index e875ce309..86213f90d 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -2572,10 +2572,11 @@ CURLcode Curl_retry_request(struct connectdata *conn, if(data->set.upload && !(conn->protocol&PROT_HTTP)) return CURLE_OK; - if((data->req.bytecount + + if(/* workaround for broken TLS servers */ data->state.ssl_connect_retry || + ((data->req.bytecount + data->req.headerbytecount == 0) && conn->bits.reuse && - !data->set.opt_no_body) { + !data->set.opt_no_body)) { /* We got no data, we attempted to re-use a connection and yet we want a "body". This might happen if the connection was left alive when we were done using it before, but that was closed when we wanted to read from |