glider/dnstun.go
2018-03-24 19:57:46 +08:00

36 lines
521 B
Go

// https://tools.ietf.org/html/rfc1035
package main
// DNSTun struct
type DNSTun struct {
dialer Dialer
addr string
raddr string
dns *DNS
tcp *TCPTun
}
// NewDNSTun returns a dns tunnel forwarder.
func NewDNSTun(addr, raddr string, dialer Dialer) (*DNSTun, error) {
s := &DNSTun{
dialer: dialer,
addr: addr,
raddr: raddr,
}
s.dns, _ = NewDNS(addr, raddr, dialer, true)
return s, nil
}
// ListenAndServe .
func (s *DNSTun) ListenAndServe() {
if s.dns != nil {
go s.dns.ListenAndServe()
}
}