x/handler/ss/udp/metadata.go
2022-03-14 20:27:14 +08:00

33 lines
603 B
Go

package ss
import (
"math"
"time"
mdata "github.com/go-gost/gost/v3/pkg/metadata"
)
type metadata struct {
key string
readTimeout time.Duration
bufferSize int
}
func (h *ssuHandler) parseMetadata(md mdata.Metadata) (err error) {
const (
key = "key"
readTimeout = "readTimeout"
bufferSize = "bufferSize"
)
h.md.key = mdata.GetString(md, key)
h.md.readTimeout = mdata.GetDuration(md, readTimeout)
if bs := mdata.GetInt(md, bufferSize); bs > 0 {
h.md.bufferSize = int(math.Min(math.Max(float64(bs), 512), 64*1024))
} else {
h.md.bufferSize = 1024
}
return
}