=== modified file 'src/HttpMsg.cc' --- src/HttpMsg.cc 2009-12-31 11:46:41 +0000 +++ src/HttpMsg.cc 2010-03-05 14:27:25 +0000 @@ -321,18 +321,13 @@ int httpMsgIsPersistent(HttpVersion const &http_ver, const HttpHeader * hdr) { -#if WHEN_SQUID_IS_HTTP1_1 - if ((http_ver.major >= 1) && (http_ver.minor >= 1)) { /* * for modern versions of HTTP: persistent unless there is * a "Connection: close" header. */ return !httpHeaderHasConnDir(hdr, "close"); - } else -#else - { -#endif + } else { /* * Persistent connections in Netscape 3.x are allegedly broken, * return false if it is a browser connection. If there is a @@ -340,17 +335,17 @@ */ const char *agent = hdr->getStr(HDR_USER_AGENT); - if (agent && !hdr->has(HDR_VIA)) { - if (!strncasecmp(agent, "Mozilla/3.", 10)) - return 0; - - if (!strncasecmp(agent, "Netscape/3.", 11)) - return 0; + if (agent && !hdr->has(HDR_VIA)) { + if (!strncasecmp(agent, "Mozilla/3.", 10)) + return 0; + + if (!strncasecmp(agent, "Netscape/3.", 11)) + return 0; + } + + /* for old versions of HTTP: persistent if has "keep-alive" */ + return httpHeaderHasConnDir(hdr, "keep-alive"); } - - /* for old versions of HTTP: persistent if has "keep-alive" */ - return httpHeaderHasConnDir(hdr, "keep-alive"); -} } void HttpMsg::packInto(Packer *p, bool full_uri) const === modified file 'src/HttpRequest.cc' --- src/HttpRequest.cc 2010-02-25 23:00:39 +0000 +++ src/HttpRequest.cc 2010-03-05 14:20:16 +0000 @@ -327,8 +327,9 @@ { assert(p); /* pack request-line */ - packerPrintf(p, "%s " SQUIDSTRINGPH " HTTP/1.0\r\n", - RequestMethodStr(method), SQUIDSTRINGPRINT(urlpath)); + packerPrintf(p, "%s " SQUIDSTRINGPH " HTTP/%d.%d\r\n", + RequestMethodStr(method), SQUIDSTRINGPRINT(urlpath), + http_ver.major, http_ver.minor); /* headers */ header.packInto(p); /* trailer */ === modified file 'src/client_side.cc' --- src/client_side.cc 2010-03-05 10:33:07 +0000 +++ src/client_side.cc 2010-03-05 14:37:07 +0000 @@ -716,8 +716,8 @@ debugs(33, 3, "clientSetKeepaliveFlag: method = " << RequestMethodStr(request->method)); + /* We are HTTP/1.0 facing clients still */ HttpVersion http_ver(1,0); - /* we are HTTP/1.0, no matter what the client requests... */ if (httpMsgIsPersistent(http_ver, req_hdr)) request->flags.proxy_keepalive = 1; === modified file 'src/client_side_request.cc' --- src/client_side_request.cc 2010-02-07 03:38:46 +0000 +++ src/client_side_request.cc 2010-03-05 14:25:52 +0000 @@ -367,8 +367,8 @@ request->my_addr.SetPort(0); - /* RFC 2616 says 'upgrade' to our 1.0 regardless of what the client is */ - HttpVersion http_ver(1,0); + /* Our version is HTTP/1.1 */ + HttpVersion http_ver(1,1); request->http_ver = http_ver; http->request = HTTPMSGLOCK(request); === modified file 'src/http.cc' --- src/http.cc 2010-03-05 01:38:57 +0000 +++ src/http.cc 2010-03-05 14:20:16 +0000 @@ -1940,7 +1940,7 @@ http_state_flags stateFlags) { const int offset = mb->size; - HttpVersion httpver(1,0); + HttpVersion httpver(1,1); mb->Printf("%s %s HTTP/%d.%d\r\n", RequestMethodStr(aRequest->method), aRequest->urlpath.size() ? aRequest->urlpath.termedBuf() : "/", @@ -2163,15 +2163,6 @@ deleteThis("HttpStateData::abortTransaction"); } -#if DEAD_CODE -void -httpBuildVersion(HttpVersion * version, unsigned int major, unsigned int minor) -{ - version->major = major; - version->minor = minor; -} -#endif - HttpRequest * HttpStateData::originalRequest() { === modified file 'src/icmp/net_db.cc' --- src/icmp/net_db.cc 2010-02-06 06:32:11 +0000 +++ src/icmp/net_db.cc 2010-03-05 14:20:16 +0000 @@ -1321,7 +1321,7 @@ HTTPMSGLOCK(ex->r); assert(NULL != ex->r); - ex->r->http_ver = HttpVersion(1,0); + ex->r->http_ver = HttpVersion(1,1); ex->connstate = STATE_HEADER; ex->e = storeCreateEntry(uri, uri, request_flags(), METHOD_GET); ex->buf_sz = NETDB_REQBUF_SZ; === modified file 'src/tunnel.cc' --- src/tunnel.cc 2009-09-04 11:38:28 +0000 +++ src/tunnel.cc 2010-03-05 14:20:16 +0000 @@ -710,7 +710,7 @@ flags.proxying = tunnelState->request->flags.proxying; MemBuf mb; mb.init(); - mb.Printf("CONNECT %s HTTP/1.0\r\n", tunnelState->url); + mb.Printf("CONNECT %s HTTP/1.1\r\n", tunnelState->url); HttpStateData::httpBuildRequestHeader(tunnelState->request, tunnelState->request, NULL, /* StoreEntry */