the Meta struct can be used in responder but it is not mandatory
This commit is contained in:
parent
eea816967b
commit
514381d98d
34
dns.go
34
dns.go
|
@ -54,20 +54,20 @@ func (e *Error) String() string {
|
|||
|
||||
// Meta data when querying
|
||||
type Meta struct {
|
||||
QLen int // query length in bytes
|
||||
RLen int // reply length in bytes
|
||||
QueryStart int64 // start of query in nanoseconds epoch
|
||||
QueryEnd int64 // end of query in nanosecond epoch
|
||||
QLen int // query length in bytes
|
||||
RLen int // reply length in bytes
|
||||
QueryStart int64 // start of query in nanoseconds epoch
|
||||
QueryEnd int64 // end of query in nanosecond epoch
|
||||
}
|
||||
|
||||
func (m *Meta) String() string {
|
||||
s := ";; Query time: " + strconv.Itoa(int(m.QueryEnd - m.QueryStart)) + " nsec"
|
||||
s += "\n;; MSG SIZE rcvd: " + strconv.Itoa(m.RLen) + ", sent: " + strconv.Itoa(m.QLen)
|
||||
rf := float32(m.RLen)
|
||||
qf := float32(m.QLen)
|
||||
s += " (" + strconv.Ftoa32(rf/qf, 'f', 2) + ":1)"
|
||||
// WHEN??
|
||||
return s
|
||||
s := ";; Query time: " + strconv.Itoa(int(m.QueryEnd-m.QueryStart)) + " nsec"
|
||||
s += "\n;; MSG SIZE rcvd: " + strconv.Itoa(m.RLen) + ", sent: " + strconv.Itoa(m.QLen)
|
||||
rf := float32(m.RLen)
|
||||
qf := float32(m.QLen)
|
||||
s += " (" + strconv.Ftoa32(rf/qf, 'f', 2) + ":1)"
|
||||
// WHEN??
|
||||
return s
|
||||
}
|
||||
|
||||
type RR interface {
|
||||
|
@ -88,9 +88,15 @@ func (r RRset) Ok() bool {
|
|||
name := r[0].Header().Name
|
||||
class := r[0].Header().Class
|
||||
for _, rr := range r[1:] {
|
||||
if rr.Header().Ttl != ttl { return false }
|
||||
if rr.Header().Name != name { return false }
|
||||
if rr.Header().Class != class { return false }
|
||||
if rr.Header().Ttl != ttl {
|
||||
return false
|
||||
}
|
||||
if rr.Header().Name != name {
|
||||
return false
|
||||
}
|
||||
if rr.Header().Class != class {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
|
|
@ -38,6 +38,8 @@ func (s *myserv) ResponderUDP(c *net.UDPConn, a net.Addr, in []byte) {
|
|||
inmsg.Unpack(in)
|
||||
out := createpkg(inmsg.MsgHdr.Id, false, a)
|
||||
SendUDP(out, c, a)
|
||||
// Meta.QLen/RLen/QueryStart/QueryEnd can be filled in at
|
||||
// this point for logging purposses or anything else
|
||||
}
|
||||
|
||||
func (s *myserv) ResponderTCP(c *net.TCPConn, in []byte) {
|
||||
|
|
Loading…
Reference in New Issue