From bbfe6f9c17a15370849587c35475029d65244cac Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Fri, 19 Jul 2019 16:32:45 +0200 Subject: [PATCH] rpc: don't set Origin header for empty (default) origin --- rpc/websocket.go | 4 +++- rpc/websocket_test.go | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/rpc/websocket.go b/rpc/websocket.go index 26d736da81..538b38e7f6 100644 --- a/rpc/websocket.go +++ b/rpc/websocket.go @@ -141,7 +141,9 @@ func wsClientHeaders(endpoint, origin string) (string, http.Header, error) { return endpoint, nil, err } header := make(http.Header) - header.Add("origin", origin) + if origin != "" { + header.Add("origin", origin) + } if endpointURL.User != nil { b64auth := base64.StdEncoding.EncodeToString([]byte(endpointURL.User.String())) header.Add("authorization", "Basic "+b64auth) diff --git a/rpc/websocket_test.go b/rpc/websocket_test.go index f150918d40..4a83ea95ec 100644 --- a/rpc/websocket_test.go +++ b/rpc/websocket_test.go @@ -66,6 +66,12 @@ func TestWebsocketOriginCheck(t *testing.T) { if err != websocket.ErrBadHandshake { t.Fatalf("wrong error for wrong origin: %q", err) } + + client, err = DialWebsocket(context.Background(), wsURL, "") + if err != nil { + t.Fatal("error for empty origin") + } + client.Close() } // This test checks whether calls exceeding the request size limit are rejected.