aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2018-12-08 09:00:12 +0000
committerGravatar jesopo2018-12-08 09:00:12 +0000
commit9bef4b7df1464043fa139f0f046c725980e3577e (patch)
treebbc48966bea2d2ecf054a632889acac372a76fc9
parentCheck whether we actually have a httpd running when unloading rest_api.py (diff)
signature
Switch to using a case insensitive dictionary for headers instead of doing
.title() on each header key
-rw-r--r--modules/github.py2
-rw-r--r--modules/rest_api.py2
-rw-r--r--src/utils/__init__.py8
3 files changed, 10 insertions, 2 deletions
diff --git a/modules/github.py b/modules/github.py
index ea0fd80b..92a0c268 100644
--- a/modules/github.py
+++ b/modules/github.py
@@ -41,7 +41,7 @@ class Module(ModuleManager.BaseModule):
)["payload"][0]
data = json.loads(payload)
- github_event = event["headers"]["X-Github-Event"]
+ github_event = event["headers"]["X-GitHub-Event"]
if github_event == "ping":
return True
diff --git a/modules/rest_api.py b/modules/rest_api.py
index f558efca..2914f5d3 100644
--- a/modules/rest_api.py
+++ b/modules/rest_api.py
@@ -14,7 +14,7 @@ class Handler(http.server.BaseHTTPRequestHandler):
_, _, endpoint = path[1:].partition("/")
endpoint, _, args = endpoint.partition("/")
args = list(filter(None, args.split("/")))
- headers = {key.title(): value for key, value in self.headers.items()}
+ headers = utils.CaseInsensitiveDict(dict(self.headers.items()))
response = ""
code = 404
diff --git a/src/utils/__init__.py b/src/utils/__init__.py
index 17adf79b..1b218b60 100644
--- a/src/utils/__init__.py
+++ b/src/utils/__init__.py
@@ -171,3 +171,11 @@ def top_10(items: typing.Dict[typing.Any, typing.Any],
value_format(items[key])))
return top_10_items
+
+class CaseInsensitiveDict(dict):
+ def __init__(self, other):
+ dict.__init__(self, ((k.lower(), v) for k, v in other))
+ def __getitem__(self, key):
+ return dict.__getitem__(self, key.lower())
+ def __setitem__(self, key):
+ return dict.__setitem__(self, key.lower())