add keepalive for tun
This commit is contained in:
@ -1,22 +1,38 @@
|
||||
package tun
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
mdata "github.com/go-gost/core/metadata"
|
||||
mdx "github.com/go-gost/x/metadata"
|
||||
)
|
||||
|
||||
const (
|
||||
defaultKeepAlivePeriod = 10 * time.Second
|
||||
)
|
||||
|
||||
type metadata struct {
|
||||
bufferSize int
|
||||
bufferSize int
|
||||
keepAlivePeriod time.Duration
|
||||
}
|
||||
|
||||
func (h *tunHandler) parseMetadata(md mdata.Metadata) (err error) {
|
||||
const (
|
||||
bufferSize = "bufferSize"
|
||||
bufferSize = "bufferSize"
|
||||
keepAlive = "keepAlive"
|
||||
keepAlivePeriod = "ttl"
|
||||
)
|
||||
|
||||
h.md.bufferSize = mdx.GetInt(md, bufferSize)
|
||||
if h.md.bufferSize <= 0 {
|
||||
h.md.bufferSize = 1500
|
||||
}
|
||||
|
||||
if mdx.GetBool(md, keepAlive) {
|
||||
h.md.keepAlivePeriod = mdx.GetDuration(md, keepAlivePeriod)
|
||||
if h.md.keepAlivePeriod <= 0 {
|
||||
h.md.keepAlivePeriod = defaultKeepAlivePeriod
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
Reference in New Issue
Block a user