Commit 67d5c0a9 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

for HTTP/1.0 we default to non keep-alive connections, but when we get a

1.0-reply from a proxy we use and the Proxy-Connection: keep-alive header
is used, we switch it on and live happily ever after
parent 580896d6
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -367,6 +367,12 @@ Transfer(struct connectdata *c_conn)
                    return CURLE_HTTP_NOT_FOUND;
                  }
                  data->progress.httpcode = code;
                  data->progress.httpversion = httpversion;
                  if(httpversion == 0)
                    /* Default action for HTTP/1.0 must be to close, unless
                       we get one of those fancy headers that tell us the
                       server keeps it open for us! */
                    conn->bits.close = TRUE;
                }
                else {
                  header = FALSE;	/* this is not a header line */
@@ -379,6 +385,18 @@ Transfer(struct connectdata *c_conn)
                conn->size = contentlength;
                Curl_pgrsSetDownloadSize(data, contentlength);
              }
              else if((httpversion == 0) &&
                      conn->bits.httpproxy &&
                      strnequal("Proxy-Connection: keep-alive", p,
                                strlen("Proxy-Connection: keep-alive"))) {
                /*
                 * When a HTTP/1.0 reply comes when using a proxy, the
                 * 'Proxy-Connection: keep-alive' line tells us the
                 * connection will be kept alive for our pleasure.
                 * Default action for 1.0 is to close.
                 */
                conn->bits.close = FALSE; /* don't close when done */
              }
              else if (strnequal("Connection: close", p,
                                 strlen("Connection: close"))) {
                /*