From 6c1a77eeccb0dd79ba97a1206a320d0d34ac8282 Mon Sep 17 00:00:00 2001 From: Griatch Date: Mon, 23 Mar 2020 23:20:27 +0100 Subject: [PATCH] Fix traceback in x-forward-for in cases of localhost --- evennia/server/webserver.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/evennia/server/webserver.py b/evennia/server/webserver.py index 4dc3f71e35..ff7f61baa0 100644 --- a/evennia/server/webserver.py +++ b/evennia/server/webserver.py @@ -70,14 +70,15 @@ class HTTPChannelWithXForwardedFor(http.HTTPChannel): Check to see if this is a reverse proxied connection. """ - CLIENT = 0 - http.HTTPChannel.allHeadersReceived(self) - req = self.requests[-1] - client_ip, port = self.transport.client - proxy_chain = req.getHeader("X-FORWARDED-FOR") - if proxy_chain and client_ip in _UPSTREAM_IPS: - forwarded = proxy_chain.split(", ", 1)[CLIENT] - self.transport.client = (forwarded, port) + if self.requests: + CLIENT = 0 + http.HTTPChannel.allHeadersReceived(self) + req = self.requests[-1] + client_ip, port = self.transport.client + proxy_chain = req.getHeader("X-FORWARDED-FOR") + if proxy_chain and client_ip in _UPSTREAM_IPS: + forwarded = proxy_chain.split(", ", 1)[CLIENT] + self.transport.client = (forwarded, port) # Monkey-patch Twisted to handle X-Forwarded-For.