From 829e49c81c1a3ac1bcffc56be82fb3d5749b61e3 Mon Sep 17 00:00:00 2001
From: echicken <echicken@bbs.electronicchicken.com>
Date: Fri, 26 Nov 2021 05:07:40 +0000
Subject: [PATCH] If BBS is using HAProxy ([BBS] Options line has
 HAPROXY_PROTO) then throw an error if X-Forwarded-For header was not
 received, or otherwise do the HAProxy thing upon connecting.

---
 exec/websocketservice.js | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/exec/websocketservice.js b/exec/websocketservice.js
index 4f991ffc10..97dca1c08e 100644
--- a/exec/websocketservice.js
+++ b/exec/websocketservice.js
@@ -87,6 +87,14 @@ try {
             var ClientData = [];
             var ServerData = [];
 
+			if (UsingHAProxy()) {
+				if (FWebSocketHeader['X-Forwarded-For'] !== undefined) {
+					// Do HAProxy stuff here
+				} else {
+					throw new Error('BBS is using HAProxy, but no X-Forwarded-For header present.');
+				}
+			}
+
             // Loop while we're still connected on both ends
             while ((client.socket.is_connected) && (FServerSocket.is_connected)) {
                 // Should we yield or not (default true, but disable if we had line activity)
-- 
GitLab