---------------------
PatchSet 1342
Date: 2005/05/05 18:24:13
Author: nlewycky
Branch: prefetching
Tag: (none)
Log:
Added recursion limits:
- Don't recurse beyond three fetches (one original, two indirections)
- Don't follow prefetchables found in a page referenced by an img element.
Members:
src/HTMLAnalysisStream.cc:1.1.2.4->1.1.2.5
src/HTMLAnalysisStream.h:1.1.2.2->1.1.2.3
src/HttpRequest.h:1.10->1.10.4.1
src/PrefetchStream.cc:1.1.2.6->1.1.2.7
src/PrefetchStream.h:1.1.2.1->1.1.2.2
src/client_side_reply.cc:1.57.2.1->1.57.2.2
src/client_side_request.cc:1.33.2.2->1.33.2.3
src/client_side_request.h:1.17.6.2->1.17.6.3
Index: squid3/src/HTMLAnalysisStream.cc
===================================================================
RCS file: /cvsroot/squid-sf//squid3/src/Attic/HTMLAnalysisStream.cc,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -r1.1.2.4 -r1.1.2.5
--- squid3/src/HTMLAnalysisStream.cc 26 Mar 2005 23:43:53 -0000 1.1.2.4
+++ squid3/src/HTMLAnalysisStream.cc 5 May 2005 18:24:13 -0000 1.1.2.5
@@ -1,6 +1,6 @@
/*
- * $Id: HTMLAnalysisStream.cc,v 1.1.2.4 2005/03/26 23:43:53 nlewycky Exp $
+ * $Id: HTMLAnalysisStream.cc,v 1.1.2.5 2005/05/05 18:24:13 nlewycky Exp $
*
* DEBUG: section 93 HTML parsing and fetching
* AUTHOR: Nick Lewycky
@@ -119,6 +119,8 @@
relative_url = urlCanonicalClean(request);
+ debugs(93, 3, "depth: " << request->recursion_depth);
+
debugs(93, 4, "analyzing " << relative_url);
}
@@ -127,9 +129,9 @@
}
inline void
-HTMLAnalysisStream::prefetch(const string &url)
+HTMLAnalysisStream::prefetch(const string &url, bool allow_recursion)
{
- PrefetchStream::prefetch(url, relative_url, request);
+ PrefetchStream::prefetch(url, relative_url, request, allow_recursion);
}
void
@@ -154,13 +156,26 @@
// Example:
//
+ if (strcasecmp(name, "img") == 0) {
+ while (*attr) {
+ if (strcasecmp(*attr, "src") == 0) {
+ self->prefetch(*(attr + 1), false);
+ return;
+ }
+
+ attr += 2;
+ }
+
+ return;
+ }
+
+ // Example:
//
//