From ac1cdb0ba455a063cd86281ae44ac53af806de7e Mon Sep 17 00:00:00 2001 From: Kami Hines Date: Tue, 1 Sep 2020 18:11:27 -0700 Subject: [PATCH] Find user IP when webclient fallsback to AJAX --- evennia/server/portal/webclient_ajax.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/evennia/server/portal/webclient_ajax.py b/evennia/server/portal/webclient_ajax.py index 1447c60805..739580f994 100644 --- a/evennia/server/portal/webclient_ajax.py +++ b/evennia/server/portal/webclient_ajax.py @@ -182,6 +182,16 @@ class AjaxWebClient(resource.Resource): csessid = self.get_client_sessid(request) remote_addr = request.getClientIP() + + if remote_addr in settings.UPSTREAM_IPS and request.getHeader("x-forwarded-for"): + addresses = [x.strip() for x in request.getHeader("x-forwarded-for").split(",")] + addresses.reverse() + + for addr in addresses: + if addr not in settings.UPSTREAM_IPS: + remote_addr = addr + break + host_string = "%s (%s:%s)" % ( _SERVERNAME, request.getRequestHostname(),