--------------------- 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: // //