commit - 9ecb07389b456761ee8a4e23e62be9f58b030937
commit + b141f1193309066d69c8a1759da0d6cf4d6d60b7
blob - f74cab14bc53ea8705412a15b159af915b68c931
blob + 675dc6bbe687abc072cbed408bae241ae862902f
--- cmd/recursor/cache.go
+++ cmd/recursor/cache.go
package main
import (
- "sync"
"golang.org/x/net/dns/dnsmessage"
+ "sync"
)
var cache = struct {
blob - aa0c6d1bcbc8c8c0cfc99c9148292378f1437e75
blob + 2fc3d81c052cdd71654d2331332cc56324071134
--- cmd/recursor/recursor_test.go
+++ cmd/recursor/recursor_test.go
if len(want.Answers) != len(got.Answers) {
return fmt.Errorf("mismatched answer count")
}
- if (len(want.Answers) == 0 || len(got.Answers) == 0) {
+ if len(want.Answers) == 0 || len(got.Answers) == 0 {
return fmt.Errorf("unsupported comparison of empty answer messages")
}
wantaddr, ok := want.Answers[0].Body.(*dnsmessage.AAAAResource)
blob - 137de3669fd4432923f8c2ef2e2f7cae846ef700
blob + a357cbedc5c26b689636d6572573aaa08d48b2cb
--- cmd/recursor/resolve.go
+++ cmd/recursor/resolve.go
func filterRRs(rrs []dnsmessage.Resource, n dnsmessage.Name, t dnsmessage.Type) []dnsmessage.Resource {
var matches []dnsmessage.Resource
for _, r := range rrs {
- if (r.Header.Name == n && r.Header.Type == t) {
+ if r.Header.Name == n && r.Header.Type == t {
matches = append(matches, r)
}
}
blob - 8d312f6bbbd2d99dd1be209a9f800edd887837f3
blob + 8353ba21711a31c59e9aae7cb5addc44eeba6596
--- dns.go
+++ dns.go
// The exchange is unencrypted using UDP.
func Ask(q dnsmessage.Question, addr string) (dnsmessage.Message, error) {
qmsg := dnsmessage.Message{
- Header: dnsmessage.Header{ID: newID()},
+ Header: dnsmessage.Header{ID: newID()},
Questions: []dnsmessage.Question{q},
}
return Exchange(qmsg, addr)
// The exchange is unencrypted using TCP.
func AskTCP(q dnsmessage.Question, addr string) (dnsmessage.Message, error) {
qmsg := dnsmessage.Message{
- Header: dnsmessage.Header{ID: newID()},
+ Header: dnsmessage.Header{ID: newID()},
Questions: []dnsmessage.Question{q},
}
return ExchangeTCP(qmsg, addr)
// The exchange is encrypted using DNS over TLS.
func AskTLS(q dnsmessage.Question, addr string) (dnsmessage.Message, error) {
qmsg := dnsmessage.Message{
- Header: dnsmessage.Header{ID: newID()},
+ Header: dnsmessage.Header{ID: newID()},
Questions: []dnsmessage.Question{q},
}
return ExchangeTLS(qmsg, addr)
blob - da47d0f5ade635b9e5992f18e81ff88699f52c1c
blob + 840a383753fd2e8194e2351ab76ad093fd9f8589
--- dns_test.go
+++ dns_test.go
var testq = dnsmessage.Question{Name: dnsmessage.MustNewName("www.example.com."), Type: dnsmessage.TypeA, Class: dnsmessage.ClassINET}
func resolveBadly(w ResponseWriter, qmsg *dnsmessage.Message) {
- rmsg := dnsmessage.Message{
- Header: dnsmessage.Header{
- ID: qmsg.Header.ID + 69,
- Response: false,
- RCode: dnsmessage.RCodeNameError,
- },
- Questions: qmsg.Questions,
- }
- w.WriteMsg(rmsg)
+ rmsg := dnsmessage.Message{
+ Header: dnsmessage.Header{
+ ID: qmsg.Header.ID + 69,
+ Response: false,
+ RCode: dnsmessage.RCodeNameError,
+ },
+ Questions: qmsg.Questions,
+ }
+ w.WriteMsg(rmsg)
}
func resolveWrongQuestion(w ResponseWriter, qmsg *dnsmessage.Message) {
wrongq := dnsmessage.Question{Name: dnsmessage.MustNewName("blabla.example.org."), Type: dnsmessage.TypeNS, Class: dnsmessage.ClassCHAOS}
rmsg := dnsmessage.Message{
Header: dnsmessage.Header{
- ID: qmsg.Header.ID,
- Response: true,
- RCode: dnsmessage.RCodeSuccess,
+ ID: qmsg.Header.ID,
+ Response: true,
+ RCode: dnsmessage.RCodeSuccess,
Authoritative: true,
},
Questions: []dnsmessage.Question{wrongq},
blob - ac93f9f087c23094a08b505f4f7223c263180ef9
blob + c94e6c8eed57383a0421ce6130875cbda6a3c033
--- server.go
+++ server.go
)
type Zone struct {
- Name dnsmessage.Name
- SOA dnsmessage.SOAResource
+ Name dnsmessage.Name
+ SOA dnsmessage.SOAResource
Resources []dnsmessage.Resource
}
blob - a505e6c00f2e448077ec690c4b7b13318e4ec389
blob + eb36cbce8158592387a2284df063c3e71b99f6c8
--- server_test.go
+++ server_test.go
"crypto/rand"
"io"
"net"
- "time"
"testing"
+ "time"
)
func TestServer(t *testing.T) {
addr := "127.0.0.1:51113"
var networks = []string{"udp", "tcp"}
for _, net := range networks {
- go func(){
+ go func() {
b.Fatal(ListenAndServe(net, addr, nil))
}()
b.Run(net, func(b *testing.B) {
- for i := 0; i<= b.N; i++ {
+ for i := 0; i <= b.N; i++ {
if net == "udp" {
if rmsg, err := Ask(testq, addr); err != nil {
b.Log(rmsg)