Recheck extern status on HTTP redirects even if domain did not change.

This commit is contained in:
Bastian Kleineidam 2012-03-08 10:07:31 +01:00
parent 0fbe27ddf6
commit 24811ac7b0
2 changed files with 14 additions and 11 deletions

View file

@ -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)

View file

@ -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]: