From b0435b3d4774639df457b23000144f28f808033a Mon Sep 17 00:00:00 2001 From: Marius Gedminas Date: Fri, 22 May 2020 11:18:30 +0300 Subject: [PATCH] Make sure login form fetching uses a timeout Also resolve an XXX comment about the User-Agent header (which is configured in new_request_session), but add a couple of XXX comments about using proxy and possibly disabling TLS certificate checking. --- linkcheck/director/aggregator.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/linkcheck/director/aggregator.py b/linkcheck/director/aggregator.py index d67c21e6..2bd061d1 100644 --- a/linkcheck/director/aggregator.py +++ b/linkcheck/director/aggregator.py @@ -79,11 +79,12 @@ class Aggregate: if not user and not password: raise LinkCheckerError( "loginurl is configured but neither user nor password are set") - session = requests.Session() - # XXX user-agent header - # XXX timeout + session = new_request_session(self.config, self.cookies) log.debug(LOG_CHECK, "Getting login form %s", url) - response = session.get(url) + kwargs = dict(timeout=self.config["timeout"]) + # XXX: proxy? sslverify? can we reuse HttpUrl.get_request_kwargs() + # somehow? + response = session.get(url, **kwargs) response.raise_for_status() cgiuser = self.config["loginuserfield"] if user else None cgipassword = self.config["loginpasswordfield"] if password else None @@ -98,7 +99,7 @@ class Aggregate: form.data[key] = value formurl = urllib.parse.urljoin(url, form.url) log.debug(LOG_CHECK, "Posting login data to %s", formurl) - response = session.post(formurl, data=form.data) + response = session.post(formurl, data=form.data, **kwargs) response.raise_for_status() self.cookies = session.cookies if len(self.cookies) == 0: