@@ -55,14 +55,18 @@ func verifyClientRequest(w http.ResponseWriter, r *http.Request) error {
55
55
}
56
56
57
57
if ! headerValuesContainsToken (r .Header , "Connection" , "Upgrade" ) {
58
+ w .Header ().Set ("Connection" , "Upgrade" )
59
+ w .Header ().Set ("Upgrade" , "websocket" )
58
60
err := fmt .Errorf ("websocket protocol violation: Connection header %q does not contain Upgrade" , r .Header .Get ("Connection" ))
59
- http .Error (w , err .Error (), http .StatusBadRequest )
61
+ http .Error (w , err .Error (), http .StatusUpgradeRequired )
60
62
return err
61
63
}
62
64
63
65
if ! headerValuesContainsToken (r .Header , "Upgrade" , "WebSocket" ) {
66
+ w .Header ().Set ("Connection" , "Upgrade" )
67
+ w .Header ().Set ("Upgrade" , "websocket" )
64
68
err := fmt .Errorf ("websocket protocol violation: Upgrade header %q does not contain websocket" , r .Header .Get ("Upgrade" ))
65
- http .Error (w , err .Error (), http .StatusBadRequest )
69
+ http .Error (w , err .Error (), http .StatusUpgradeRequired )
66
70
return err
67
71
}
68
72
@@ -73,6 +77,7 @@ func verifyClientRequest(w http.ResponseWriter, r *http.Request) error {
73
77
}
74
78
75
79
if r .Header .Get ("Sec-WebSocket-Version" ) != "13" {
80
+ w .Header ().Set ("Sec-WebSocket-Version" , "13" )
76
81
err := fmt .Errorf ("unsupported websocket protocol version (only 13 is supported): %q" , r .Header .Get ("Sec-WebSocket-Version" ))
77
82
http .Error (w , err .Error (), http .StatusBadRequest )
78
83
return err
0 commit comments