feat: Converter support WS early data parameters

This commit is contained in:
gVisor bot 2023-01-27 11:31:58 +08:00
parent f6965bbbc8
commit d1e9ba43fc

View File

@ -2,7 +2,9 @@ package convert
import ( import (
"errors" "errors"
"fmt"
"net/url" "net/url"
"strconv"
"strings" "strings"
) )
@ -94,6 +96,17 @@ func handleVShareLink(names map[string]int, url *url.URL, scheme string, proxy m
wsOpts["path"] = query.Get("path") wsOpts["path"] = query.Get("path")
wsOpts["headers"] = headers wsOpts["headers"] = headers
if earlyData := query.Get("ed"); earlyData != "" {
med, err := strconv.Atoi(earlyData)
if err != nil {
return fmt.Errorf("bad WebSocket max early data size: %v", err)
}
wsOpts["max-early-data"] = med
}
if earlyDataHeader := query.Get("eh"); earlyDataHeader != "" {
wsOpts["early-data-header-name"] = earlyDataHeader
}
proxy["ws-opts"] = wsOpts proxy["ws-opts"] = wsOpts
case "grpc": case "grpc":