[squid-users] Vary object loop returns
joe
chip_pop at hotmail.com
Sat Jun 4 20:39:07 UTC 2016
Yuri can you test this pls if its better
--- src/client_side.cc 2016-05-25 02:27:13.000000000 +0300
+++ src/client_side.cc 2016-06-04 23:14:16.000000000 +0300
@@ -140,7 +140,7 @@
#if LINGERING_CLOSE
#define comm_close comm_lingering_close
#endif
-
+#include <regex>
/// dials clientListenerConnectionOpened call
class ListeningStartedDialer: public CallDialer, public
Ipc::StartListeningCb
{
@@ -4738,6 +4738,17 @@
if (!vary.isEmpty())
request->vary_headers = vary;
}
+ /* new test in vary header there is unwanted mark deed code wish is
marked with %20 tell the browser not to use */
+ /* and its affecting the cache for cache hit % if you use 2
browser example Firefox and chrome and load object */
+ /* that has vary --> accept-encoding="gzip,%20deflate,%20sdch */
+ /* second browser use the same object link and has different
accept-encoding="gzip,%20deflate" */
+ /* as you notice they do not match so result miss and it delete the
previous object from the cache */
+ /* the new code should filter out those marked with %20 the
different is really big in % hit */
+ if (!vary.isEmpty()) {
+ std::regex e ("\\b(,%20)(.*)([,\"]$)");
+ vary=SBuf(std::regex_replace (vary.c_str(),e,"")+"\"");
+ return VARY_MATCH;
+ }
if (vary.isEmpty()) {
/* Ouch.. we cannot handle this kind of variance */
please guys its not for production migh have a different affect or bug only
test wen the dev team approve it or make a better vertion
--
View this message in context: http://squid-web-proxy-cache.1019090.n4.nabble.com/Vary-object-loop-returns-tp4677716p4677808.html
Sent from the Squid - Users mailing list archive at Nabble.com.
More information about the squid-users
mailing list