1
This commit is contained in:
parent
96ba425ae9
commit
c796300e9b
1 changed files with 19 additions and 19 deletions
|
|
@ -9,16 +9,16 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/miekg/dns"
|
miekgDNS "github.com/miekg/dns"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
"github.com/zeevdiukman/z/helper"
|
"github.com/zeevdiukman/z/helper"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ResponseWriter = dns.ResponseWriter
|
type ResponseWriter = miekgDNS.ResponseWriter
|
||||||
type Msg = dns.Msg
|
type Msg = miekgDNS.Msg
|
||||||
type HandlerFunc = dns.HandlerFunc
|
type HandlerFunc = miekgDNS.HandlerFunc
|
||||||
|
|
||||||
// func(dns.ResponseWriter, *dns.Msg)
|
// func(miekgDNS.ResponseWriter, *miekgDNS.Msg)
|
||||||
type DNS struct {
|
type DNS struct {
|
||||||
Config Config
|
Config Config
|
||||||
Server Server
|
Server Server
|
||||||
|
|
@ -32,11 +32,11 @@ type Config struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type Server struct {
|
type Server struct {
|
||||||
*dns.Server
|
*miekgDNS.Server
|
||||||
}
|
}
|
||||||
|
|
||||||
type Mux struct {
|
type Mux struct {
|
||||||
*dns.ServeMux
|
*miekgDNS.ServeMux
|
||||||
}
|
}
|
||||||
|
|
||||||
type Records struct {
|
type Records struct {
|
||||||
|
|
@ -75,14 +75,14 @@ func (a *DNS) ConfigInit(filePath string) {
|
||||||
}
|
}
|
||||||
func (a *DNS) ServerInit() {
|
func (a *DNS) ServerInit() {
|
||||||
port := a.Config.GetInt("port")
|
port := a.Config.GetInt("port")
|
||||||
a.Server.Server = &dns.Server{
|
a.Server.Server = &miekgDNS.Server{
|
||||||
Addr: ":" + strconv.Itoa(port),
|
Addr: ":" + strconv.Itoa(port),
|
||||||
Net: a.Config.GetString("network"),
|
Net: a.Config.GetString("network"),
|
||||||
Handler: nil,
|
Handler: nil,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (a *DNS) MuxInit() {
|
func (a *DNS) MuxInit() {
|
||||||
a.Mux.ServeMux = dns.NewServeMux()
|
a.Mux.ServeMux = miekgDNS.NewServeMux()
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewResolver(DNSserverAddr string) *Resolver {
|
func NewResolver(DNSserverAddr string) *Resolver {
|
||||||
|
|
@ -97,8 +97,8 @@ func NewResolver(DNSserverAddr string) *Resolver {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *DNS) Handler(f func(a *DNS, w dns.ResponseWriter, r *dns.Msg)) dns.HandlerFunc {
|
func (a *DNS) Handler(f func(a *DNS, w miekgDNS.ResponseWriter, r *miekgDNS.Msg)) miekgDNS.HandlerFunc {
|
||||||
return func(w dns.ResponseWriter, r *dns.Msg) {
|
return func(w miekgDNS.ResponseWriter, r *miekgDNS.Msg) {
|
||||||
f(a, w, r)
|
f(a, w, r)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -117,9 +117,9 @@ func (r *Resolver) Lookup(lookupAddr string, DNSserverAddr string) string {
|
||||||
return resp[0]
|
return resp[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *DNS) HandleTypeA(w dns.ResponseWriter, r *dns.Msg) {
|
func (a *DNS) HandleTypeA(w miekgDNS.ResponseWriter, r *miekgDNS.Msg) {
|
||||||
t := time.Now()
|
t := time.Now()
|
||||||
msg := &dns.Msg{}
|
msg := &miekgDNS.Msg{}
|
||||||
msg.SetReply(r)
|
msg.SetReply(r)
|
||||||
q := r.Question[0]
|
q := r.Question[0]
|
||||||
domainName := helper.FtoD(q.Name)
|
domainName := helper.FtoD(q.Name)
|
||||||
|
|
@ -143,19 +143,19 @@ func (a *DNS) HandleTypeA(w dns.ResponseWriter, r *dns.Msg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
RR_Header := dns.RR_Header{
|
RR_Header := miekgDNS.RR_Header{
|
||||||
Name: dns.Fqdn(domainName),
|
Name: miekgDNS.Fqdn(domainName),
|
||||||
Rrtype: dns.TypeA,
|
Rrtype: miekgDNS.TypeA,
|
||||||
Class: dns.ClassINET,
|
Class: miekgDNS.ClassINET,
|
||||||
Ttl: 3600,
|
Ttl: 3600,
|
||||||
}
|
}
|
||||||
answer_typeA := &dns.A{
|
answer_typeA := &miekgDNS.A{
|
||||||
Hdr: RR_Header,
|
Hdr: RR_Header,
|
||||||
A: net.ParseIP(ip).To4(),
|
A: net.ParseIP(ip).To4(),
|
||||||
}
|
}
|
||||||
msg.Authoritative = true
|
msg.Authoritative = true
|
||||||
msg.RecursionDesired = false
|
msg.RecursionDesired = false
|
||||||
msg.SetRcode(r, dns.RcodeSuccess)
|
msg.SetRcode(r, miekgDNS.RcodeSuccess)
|
||||||
msg.Answer = append(msg.Answer, answer_typeA)
|
msg.Answer = append(msg.Answer, answer_typeA)
|
||||||
tt := time.Since(t)
|
tt := time.Since(t)
|
||||||
helper.P(tt, " => ", domainName)
|
helper.P(tt, " => ", domainName)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue