Fix documentation
This commit is contained in:
parent
b2fadde636
commit
14a8b3c2f2
|
@ -91,6 +91,8 @@ func handleReflect(w dns.ResponseWriter, r *dns.Msg) {
|
||||||
3600)`)
|
3600)`)
|
||||||
c <- &dns.XfrToken{RR: []dns.RR{soa, t, rr, soa}}
|
c <- &dns.XfrToken{RR: []dns.RR{soa, t, rr, soa}}
|
||||||
close(c)
|
close(c)
|
||||||
|
w.Hijack()
|
||||||
|
w.Close()
|
||||||
return
|
return
|
||||||
case dns.TypeTXT:
|
case dns.TypeTXT:
|
||||||
m.Answer = append(m.Answer, t)
|
m.Answer = append(m.Answer, t)
|
||||||
|
|
|
@ -43,12 +43,12 @@ type conn struct {
|
||||||
request []byte // bytes read
|
request []byte // bytes read
|
||||||
_UDP *net.UDPConn // i/o connection if UDP was used
|
_UDP *net.UDPConn // i/o connection if UDP was used
|
||||||
_TCP *net.TCPConn // i/o connection if TCP was used
|
_TCP *net.TCPConn // i/o connection if TCP was used
|
||||||
hijacked bool // connection has been hijacked by hander TODO(mg)
|
|
||||||
tsigSecret map[string]string // the tsig secrets
|
tsigSecret map[string]string // the tsig secrets
|
||||||
}
|
}
|
||||||
|
|
||||||
type response struct {
|
type response struct {
|
||||||
conn *conn
|
conn *conn
|
||||||
|
hijacked bool // connection has been hijacked by handler
|
||||||
req *Msg
|
req *Msg
|
||||||
tsigStatus error
|
tsigStatus error
|
||||||
tsigTimersOnly bool
|
tsigTimersOnly bool
|
||||||
|
@ -336,7 +336,7 @@ func (c *conn) serve() {
|
||||||
}
|
}
|
||||||
w.req = req
|
w.req = req
|
||||||
c.handler.ServeDNS(w, w.req) // this does the writing back to the client
|
c.handler.ServeDNS(w, w.req) // this does the writing back to the client
|
||||||
if c.hijacked {
|
if w.hijacked {
|
||||||
// client takes care of the connection, i.e. calls Close()
|
// client takes care of the connection, i.e. calls Close()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
4
xfr.go
4
xfr.go
|
@ -156,6 +156,7 @@ func checkXfrSOA(in *Msg, first bool) bool {
|
||||||
// c := make(chan *XfrToken)
|
// c := make(chan *XfrToken)
|
||||||
// var e *error
|
// var e *error
|
||||||
// err := XfrSend(w, q, c, e)
|
// err := XfrSend(w, q, c, e)
|
||||||
|
// w.Hijack()
|
||||||
// for _, rrset := range rrsets { // rrset is a []RR
|
// for _, rrset := range rrsets { // rrset is a []RR
|
||||||
// c <- &{XfrToken{RR: rrset}
|
// c <- &{XfrToken{RR: rrset}
|
||||||
// if e != nil {
|
// if e != nil {
|
||||||
|
@ -163,6 +164,7 @@ func checkXfrSOA(in *Msg, first bool) bool {
|
||||||
// break
|
// break
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
// w.Close()
|
||||||
func XfrSend(w ResponseWriter, q *Msg, c chan *XfrToken, e *error) error {
|
func XfrSend(w ResponseWriter, q *Msg, c chan *XfrToken, e *error) error {
|
||||||
switch q.Question[0].Qtype {
|
switch q.Question[0].Qtype {
|
||||||
case TypeAXFR, TypeIXFR:
|
case TypeAXFR, TypeIXFR:
|
||||||
|
@ -181,7 +183,6 @@ func axfrSend(w ResponseWriter, req *Msg, c chan *XfrToken, e *error) {
|
||||||
rep.MsgHdr.Authoritative = true
|
rep.MsgHdr.Authoritative = true
|
||||||
|
|
||||||
for x := range c {
|
for x := range c {
|
||||||
println("got some", len(x.RR))
|
|
||||||
// assume it fits
|
// assume it fits
|
||||||
rep.Answer = append(rep.Answer, x.RR...)
|
rep.Answer = append(rep.Answer, x.RR...)
|
||||||
println(rep.String())
|
println(rep.String())
|
||||||
|
@ -192,5 +193,4 @@ func axfrSend(w ResponseWriter, req *Msg, c chan *XfrToken, e *error) {
|
||||||
w.TsigTimersOnly(true)
|
w.TsigTimersOnly(true)
|
||||||
rep.Answer = nil
|
rep.Answer = nil
|
||||||
}
|
}
|
||||||
w.Close() // Hijack
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue