fix: only remove Sec-WebSocket-Accept if present in HTTP/2 Extended CONNECT

- Check if Sec-WebSocket-Accept header exists before deleting
- This prevents unnecessary header manipulation when backend doesn't send it
- Maintains compatibility with backends that may or may not include this header
This commit is contained in:
wjqserver 2026-04-19 07:44:22 +08:00
parent 0f7cf23abb
commit b008fc8e61

View file

@ -1014,7 +1014,9 @@ func (p *reverseProxyHandler) handleBridgedExtendedConnectResponse(c *Context, r
responseHeader := c.Writer.Header()
reverseProxyCopyHeader(responseHeader, res.Header)
removeHopByHopHeaders(responseHeader)
if accept := res.Header.Get("Sec-WebSocket-Accept"); accept != "" {
responseHeader.Del("Sec-WebSocket-Accept")
}
c.Writer.WriteHeader(http.StatusOK)
if err := controller.Flush(); err != nil && !errors.Is(err, http.ErrNotSupported) {
backConn.Close()