diff --git a/handler/dns/handler.go b/handler/dns/handler.go index 18ec098..e7c71fb 100644 --- a/handler/dns/handler.go +++ b/handler/dns/handler.go @@ -71,7 +71,10 @@ func (h *dnsHandler) Init(md md.Metadata) (err error) { for i, addr := range h.md.dns { nodes = append(nodes, chain.NewNode(fmt.Sprintf("target-%d", i), addr)) } - h.hop = xhop.NewHop(xhop.NodeOption(nodes...)) + h.hop = xhop.NewHop( + xhop.NodeOption(nodes...), + xhop.LoggerOption(log), + ) } var nodes []*chain.Node diff --git a/handler/dns/metadata.go b/handler/dns/metadata.go index 90ba3b2..4b45e83 100644 --- a/handler/dns/metadata.go +++ b/handler/dns/metadata.go @@ -2,6 +2,7 @@ package dns import ( "net" + "strings" "time" mdata "github.com/go-gost/core/metadata" @@ -45,7 +46,14 @@ func (h *dnsHandler) parseMetadata(md mdata.Metadata) (err error) { if sip != "" { h.md.clientIP = net.ParseIP(sip) } - h.md.dns = mdutil.GetStrings(md, dns) + for _, v := range strings.Split(mdutil.GetString(md, dns), ",") { + v = strings.TrimSpace(v) + if v == "" { + continue + } + h.md.dns = append(h.md.dns, v) + } + h.md.bufferSize = mdutil.GetInt(md, bufferSize) if h.md.bufferSize <= 0 { h.md.bufferSize = defaultBufferSize