From 6326ba38c980789a0c84efad197bfcd54f28b5eb Mon Sep 17 00:00:00 2001
From: a <a@a.a>
Date: Tue, 30 Aug 2022 23:09:01 -0500
Subject: [PATCH] add psudo support for origin as fallback, fixed tests

---
 http_test.go | 2 +-
 websocket.go | 7 ++++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/http_test.go b/http_test.go
index c1242e5..6fb56af 100644
--- a/http_test.go
+++ b/http_test.go
@@ -176,7 +176,7 @@ func TestHTTPPeerInfo(t *testing.T) {
 		t.Fatal(err)
 	}
 	c.SetHeader("user-agent", "ua-testing")
-	c.SetHeader("origin", "origin.example.com")
+	c.SetHeader("x-forwarded-for", "origin.example.com")
 
 	// Request peer information.
 	var info PeerInfo
diff --git a/websocket.go b/websocket.go
index 76e6aee..42ec512 100644
--- a/websocket.go
+++ b/websocket.go
@@ -120,7 +120,6 @@ func wsClientHeaders(endpoint, origin string) (string, http.Header, error) {
 	header := make(http.Header)
 	if origin != "" {
 		header.Add("origin", origin)
-		header.Add("X-Forwarded-For", origin)
 	}
 	if endpointURL.User != nil {
 		b64auth := base64.StdEncoding.EncodeToString([]byte(endpointURL.User.String()))
@@ -177,10 +176,16 @@ func newWebsocketCodec(ctx context.Context, c *websocket.Conn, host string, req
 	}
 	// Fill in connection details.
 	wc.info.HTTP.Host = host
+	// traefik proxy protocol headers
 	wc.info.HTTP.Origin = req.Get("X-Real-Ip")
 	if wc.info.HTTP.Origin == "" {
 		wc.info.HTTP.Origin = req.Get("X-Forwarded-For")
 	}
+	// origin header fallback
+	if wc.info.HTTP.Origin == "" {
+		wc.info.HTTP.Origin = req.Get("origin")
+	}
+	wc.info.RemoteAddr = wc.info.HTTP.Origin
 	wc.info.HTTP.UserAgent = req.Get("User-Agent")
 	wc.info.HTTP.Headers = req
 	// Start pinger.
-- 
GitLab