From f5d6ba27b23c31b0faab60a04dfc75b7ecc82758 Mon Sep 17 00:00:00 2001 From: ed Date: Wed, 27 Apr 2022 22:30:19 +0200 Subject: [PATCH] handle invalid headers better --- copyparty/httpcli.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/copyparty/httpcli.py b/copyparty/httpcli.py index d63ae562..af8971e8 100644 --- a/copyparty/httpcli.py +++ b/copyparty/httpcli.py @@ -121,6 +121,12 @@ class HttpCli(object): try: self.mode, self.req, self.http_ver = headerlines[0].split(" ") + + # normalize incoming headers to lowercase; + # outgoing headers however are Correct-Case + for header_line in headerlines[1:]: + k, v = header_line.split(":", 1) + self.headers[k.lower()] = v.strip() except: msg = " ]\n#[ ".join(headerlines) raise Pebkac(400, "bad headers:\n#[ " + msg + " ]") @@ -137,12 +143,6 @@ class HttpCli(object): if self.args.rsp_slp: time.sleep(self.args.rsp_slp) - # normalize incoming headers to lowercase; - # outgoing headers however are Correct-Case - for header_line in headerlines[1:]: - k, v = header_line.split(":", 1) - self.headers[k.lower()] = v.strip() - v = self.headers.get("connection", "").lower() self.keepalive = not v.startswith("close") and self.http_ver != "HTTP/1.0" self.is_https = (self.headers.get("x-forwarded-proto", "").lower() == "https" or self.tls)