From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2201) id ADE96385DC0C; Mon, 13 Apr 2020 21:05:36 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ADE96385DC0C To: cygwin-apps-cvs@sourceware.org Subject: [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20200401-9-g8320035 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 49c58c4aeb14b75be801856024d64713e645ddc3 X-Git-Newrev: 832003502e6d2cb5dd1eeb52bf3bd1e7ea2e2635 Message-Id: <20200413210536.ADE96385DC0C@sourceware.org> Date: Mon, 13 Apr 2020 21:05:36 +0000 (GMT) From: Jon TURNEY X-BeenThere: cygwin-apps-cvs@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin-apps git logs List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Apr 2020 21:05:36 -0000 https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=832003502e6d2cb5dd1eeb52bf3bd1e7ea2e2635 commit 832003502e6d2cb5dd1eeb52bf3bd1e7ea2e2635 Author: Jon Turney Date: Mon Apr 13 16:46:27 2020 +0100 Add a tool for demonstrating version sort https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=1e59f9df68ad944cf05a1e0ebd8c7e6631d3d866 commit 1e59f9df68ad944cf05a1e0ebd8c7e6631d3d866 Author: Jon Turney Date: Mon Apr 13 15:51:36 2020 +0100 Enhance homepage fixing Handle: * Trivial terminal '/' redirects * 308 Permanent Redirect as well as 301 Moved Permanently * sites which block urllib's default user-agent * Slow to respond sites with a timeout Diff: --- calm/fixes.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/calm/fixes.py b/calm/fixes.py index a89896a..33c1087 100644 --- a/calm/fixes.py +++ b/calm/fixes.py @@ -26,6 +26,7 @@ import logging import os import re import shutil +import socket import tarfile import urllib.request import urllib.error @@ -72,11 +73,12 @@ class NoRedirection(urllib.request.HTTPErrorProcessor): def follow_redirect(homepage): opener = urllib.request.build_opener(NoRedirection) opener.addheaders = [('User-Agent', 'calm')] + request = urllib.request.Request(homepage, method='HEAD') try: - response = opener.open(homepage) + response = opener.open(request, timeout=60) if response.code in [301, 308]: return response.headers['Location'] - except (ConnectionResetError, ValueError, urllib.error.URLError) as e: + except (ConnectionResetError, ValueError, socket.timeout, urllib.error.URLError) as e: logging.warning('error %s checking homepage:%s' % (e, homepage)) return homepage