From: Alex Rousskov Date: Wed, 22 May 2013 21:25:39 +0000 (-0600) Subject: Merged from parent (large-rock r12530 including trunk r12732; v3.3.3+). X-Git-Tag: SQUID_3_5_0_1~444^2~63 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a26c0ae319368368143f781a6eb6f263516ad363;p=thirdparty%2Fsquid.git Merged from parent (large-rock r12530 including trunk r12732; v3.3.3+). --- a26c0ae319368368143f781a6eb6f263516ad363 diff --cc src/cf.data.pre index 9f4f2cb209,a4c91786f1..14b60aa740 --- a/src/cf.data.pre +++ b/src/cf.data.pre @@@ -104,6 -104,57 +104,51 @@@ COMMENT_STAR across all Squid processes. COMMENT_END + # options still not yet ported from 2.7 to 3.x + NAME: broken_vary_encoding + TYPE: obsolete + DOC_START + This option is not yet supported by Squid-3. + DOC_END + + NAME: cache_vary + TYPE: obsolete + DOC_START + This option is not yet supported by Squid-3. + DOC_END + -NAME: collapsed_forwarding -TYPE: obsolete -DOC_START - This option is not yet supported by Squid-3. see http://bugs.squid-cache.org/show_bug.cgi?id=3495 -DOC_END - + NAME: error_map + TYPE: obsolete + DOC_START + This option is not yet supported by Squid-3. + DOC_END + + NAME: external_refresh_check + TYPE: obsolete + DOC_START + This option is not yet supported by Squid-3. + DOC_END + + NAME: ignore_ims_on_miss + TYPE: obsolete + DOC_START + This option is not yet supported by Squid-3. + DOC_END + + NAME: location_rewrite_program location_rewrite_access location_rewrite_children location_rewrite_concurrency + TYPE: obsolete + DOC_START + This option is not yet supported by Squid-3. + DOC_END + + NAME: refresh_stale_hit + TYPE: obsolete + DOC_START + This option is not yet supported by Squid-3. + DOC_END + + # no Options Removed in 3.3 + # Options Removed in 3.2 NAME: ignore_expect_100 TYPE: obsolete diff --cc src/client_side_reply.cc index de278d7da9,cf41725c88..2bf9a17437 --- a/src/client_side_reply.cc +++ b/src/client_side_reply.cc @@@ -2174,20 -2186,13 +2186,22 @@@ clientReplyContext::createStoreEntry(co * so make a fake one. */ - if (http->request == NULL) - http->request = HTTPMSGLOCK(new HttpRequest(m, AnyP::PROTO_NONE, null_string)); + if (http->request == NULL) { + http->request = new HttpRequest(m, AnyP::PROTO_NONE, null_string); + HTTPMSGLOCK(http->request); + } - StoreEntry *e = storeCreateEntry(http->uri, http->log_uri, reqFlags, m); + StoreEntry *e = storeCreateEntry(storeId(), http->log_uri, reqFlags, m); + // Make entry collapsable ASAP, to increase collapsing chances for others. + // TODO: why is !.needValidation required here? + if (Config.onoff.collapsed_forwarding && reqFlags.cachable && + !reqFlags.needValidation && + (m == Http::METHOD_GET || m == Http::METHOD_HEAD)) { + // make the entry available for future requests now + Store::Root().allowCollapsing(e, reqFlags, m); + } + sc = storeClientListAdd(e, this); #if USE_DELAY_POOLS diff --cc src/http.cc index 0c03e62bc2,685204132f..978f7e907d --- a/src/http.cc +++ b/src/http.cc @@@ -188,10 -188,8 +188,10 @@@ HttpStateData::httpTimeout(const CommTi serverConnection->close(); } +/// Remove an existing public store entry if the incoming response (to be +/// stored in a currently private entry) is going to invalidate it. static void - httpMaybeRemovePublic(StoreEntry * e, http_status status) + httpMaybeRemovePublic(StoreEntry * e, Http::StatusCode status) { int remove = 0; int forbidden = 0;