From 7c097935cec16fbaa077b76bc27978f09d12db4d Mon Sep 17 00:00:00 2001 From: Jed Reynolds Date: Thu, 3 Dec 2020 18:11:49 -0800 Subject: [PATCH] LFRequest: tests for # and space in and does URL encoding --- py-json/LANforge/LFRequest.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/py-json/LANforge/LFRequest.py b/py-json/LANforge/LFRequest.py index f3b690ca..e6bde524 100644 --- a/py-json/LANforge/LFRequest.py +++ b/py-json/LANforge/LFRequest.py @@ -36,13 +36,22 @@ class LFRequest: else: self.requested_url = url + if self.requested_url is None: + raise Exception("Bad LFRequest of url[%s] uri[%s] -> None" % url, uri) + if self.requested_url.find('//'): protopos = self.requested_url.find("://") self.requested_url = self.requested_url[:protopos + 2] + self.requested_url[protopos + 2:].replace("//", "/") + + # finding '#' prolly indicates a macvlan (eth1#0) + # finding ' ' prolly indicates a field name that should imply %20 + if (self.requested_url.find('#') >= 1) or (self.requested_url.find(' ')): + self.requested_url = urllib.parse.quote_plus(self.requested_url) + if self.debug: print("new LFRequest[%s]" % self.requested_url ) - if self.requested_url is None: - raise Exception("Bad LFRequest of url[%s] uri[%s] -> None" % url, uri) + + # request first url on stack def formPost(self, show_error=True, debug=False, die_on_error_=False):