From 24811ac7b0323c19456fe124fa19d1e5560f33d0 Mon Sep 17 00:00:00 2001 From: Bastian Kleineidam Date: Thu, 8 Mar 2012 10:07:31 +0100 Subject: [PATCH] Recheck extern status on HTTP redirects even if domain did not change. --- doc/changelog.txt | 5 +++++ linkcheck/checker/httpurl.py | 20 +++++++++----------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/doc/changelog.txt b/doc/changelog.txt index 957840ed..3d9bb294 100644 --- a/doc/changelog.txt +++ b/doc/changelog.txt @@ -1,5 +1,10 @@ 7.6 "" (released xx.xx.2012) +Fixes: +- checking: Recheck extern status on HTTP redirects even if domain + did not change. Patch by Charles Jones. + Closes: SF bug #3495407 + 7.5 "Kukushka" (released 13.02.2012) diff --git a/linkcheck/checker/httpurl.py b/linkcheck/checker/httpurl.py index 11b9ba92..d84fea48 100644 --- a/linkcheck/checker/httpurl.py +++ b/linkcheck/checker/httpurl.py @@ -365,17 +365,15 @@ class HttpUrl (internpaturl.InternPatternUrl, proxysupport.ProxySupport): def check_redirection_domain (self, redirected, urlparts, set_result, response): """Return True if redirection domain is ok, else False.""" - if urlparts[1] == self.urlparts[1]: - # URL domain did not change - return True - # URL domain changed - if self.recursion_level == 0 and urlparts[0] in ('http', 'https'): - # Add intern patterns for redirection of URLs given by the - # user for HTTP schemes. - pat = internpaturl.get_intern_pattern(redirected) - log.debug(LOG_CHECK, "Add intern pattern %r", pat) - self.aggregate.config['internlinks'].append(get_link_pat(pat)) - return True + if urlparts[1] != self.urlparts[1]: + # URL domain changed + if self.recursion_level == 0 and urlparts[0] in ('http', 'https'): + # Add intern patterns for redirection of URLs given by the + # user for HTTP schemes. + pat = internpaturl.get_intern_pattern(redirected) + log.debug(LOG_CHECK, "Add intern pattern %r", pat) + self.aggregate.config['internlinks'].append(get_link_pat(pat)) + return True # check extern filter again self.set_extern(redirected) if self.extern[0] and self.extern[1]: