Add WebSocket 0-RTT support (#375)

This commit is contained in:
RPRX 2021-03-14 07:10:10 +00:00 committed by GitHub
parent 9adce5a6c4
commit 60b06877bf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 122 additions and 14 deletions

View file

@ -3,6 +3,8 @@ package conf
import (
"encoding/json"
"math"
"net/url"
"strconv"
"strings"
"github.com/golang/protobuf/proto"
@ -155,9 +157,20 @@ func (c *WebSocketConfig) Build() (proto.Message, error) {
Value: value,
})
}
var ed uint32
if u, err := url.Parse(path); err == nil {
if q := u.Query(); q.Get("ed") != "" {
Ed, _ := strconv.Atoi(q.Get("ed"))
ed = uint32(Ed)
q.Del("ed")
u.RawQuery = q.Encode()
path = u.String()
}
}
config := &websocket.Config{
Path: path,
Header: header,
Ed: ed,
}
if c.AcceptProxyProtocol {
config.AcceptProxyProtocol = c.AcceptProxyProtocol