diff --git a/internal/server/auth_test.go b/internal/server/auth_test.go index 8d0b62f..87e5b9c 100644 --- a/internal/server/auth_test.go +++ b/internal/server/auth_test.go @@ -166,4 +166,30 @@ func TestPrepareConnection(t *testing.T) { return } }) + t.Run("Websocket correct", func(t *testing.T) { + sta, _ := InitState(func() time.Time { return time.Unix(1584358419, 0) }) + sta.staticPv = p.(crypto.PrivateKey) + sta.ProxyBook["shadowsocks"] = nil + + req := `GET / HTTP/1.1 +Host: d2jkinvisak5y9.cloudfront.net:443 +User-Agent: Go-http-client/1.1 +Connection: Upgrade +Hidden: oJxeEwfDWg5k5Jbl8ttZD1sc0fHp8VjEtXHsqEoSrnaLRe/M+KGXkOzpc/2fRRg9Vk+wIWRsfv8IpoBPLbqO+ZfGsPXTjUJGiI9BqxrcJfkxncXA7FAHGpTc84tzBtZZ +Sec-WebSocket-Key: lJYh7X8DRXW1U0h9WKwVMA== +Sec-WebSocket-Version: 13 +Upgrade: websocket + +` + info, _, err := PrepareConnection([]byte(req), sta, nil) + if err != nil { + t.Errorf("failed to get client info: %v", err) + return + } + if info.Transport.(fmt.Stringer).String() != "WebSocket" { + t.Errorf("wrong transport: %v", info.Transport) + return + } + }) + }