43 lines
871 B
Go
43 lines
871 B
Go
package dns
|
|
|
|
import (
|
|
"time"
|
|
|
|
mdata "github.com/go-gost/core/metadata"
|
|
mdutil "github.com/go-gost/core/metadata/util"
|
|
)
|
|
|
|
const (
|
|
defaultBacklog = 128
|
|
)
|
|
|
|
type metadata struct {
|
|
mode string
|
|
readBufferSize int
|
|
readTimeout time.Duration
|
|
writeTimeout time.Duration
|
|
backlog int
|
|
}
|
|
|
|
func (l *dnsListener) parseMetadata(md mdata.Metadata) (err error) {
|
|
const (
|
|
backlog = "backlog"
|
|
mode = "mode"
|
|
readBufferSize = "readBufferSize"
|
|
readTimeout = "readTimeout"
|
|
writeTimeout = "writeTimeout"
|
|
)
|
|
|
|
l.md.mode = mdutil.GetString(md, mode)
|
|
l.md.readBufferSize = mdutil.GetInt(md, readBufferSize)
|
|
l.md.readTimeout = mdutil.GetDuration(md, readTimeout)
|
|
l.md.writeTimeout = mdutil.GetDuration(md, writeTimeout)
|
|
|
|
l.md.backlog = mdutil.GetInt(md, backlog)
|
|
if l.md.backlog <= 0 {
|
|
l.md.backlog = defaultBacklog
|
|
}
|
|
|
|
return
|
|
}
|