Skip to content

Instantly share code, notes, and snippets.

@cesarkuroiwa
Created September 14, 2018 13:52
Show Gist options
  • Save cesarkuroiwa/ebc2b4fb1103a7e88824865184f0c73c to your computer and use it in GitHub Desktop.
Save cesarkuroiwa/ebc2b4fb1103a7e88824865184f0c73c to your computer and use it in GitHub Desktop.
package main
import (
"fmt"
"github.com/miekg/dns"
)
func main() {
msg := dns.Msg{Compress: true}
ownername := "some-very-long-ownername.com."
ns := dns.NS{
Hdr: dns.RR_Header{
Name: ownername,
Rrtype: dns.TypeNS,
Class: dns.ClassINET,
},
Ns: "ns1.server.com.",
}
msg.Answer = append(msg.Answer, &ns)
nsec := dns.NSEC{
Hdr: dns.RR_Header{
Name: ownername,
Rrtype: dns.TypeNSEC,
Class: dns.ClassINET,
},
NextDomain: "a.com.",
TypeBitMap: []uint16{dns.TypeNS, dns.TypeNSEC},
}
msg.Answer = append(msg.Answer, &nsec)
// Pack msg and then unpack into msg2
msgBuffer, _ := msg.Pack()
msg2 := dns.Msg{}
msg2.Unpack(msgBuffer)
// Print NSEC RR for both cases
fmt.Println(msg.Answer[1])
fmt.Println(msg2.Answer[1])
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment