From e429f38a766443b633f436c316fccb23840e6c7e Mon Sep 17 00:00:00 2001 From: Alex Ciuba Date: Sat, 25 Jan 2014 14:21:46 -0500 Subject: [PATCH 1/6] Overallocate label index buffer --- labels.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/labels.go b/labels.go index ff25453f..8d93228d 100644 --- a/labels.go +++ b/labels.go @@ -110,7 +110,7 @@ func Split(s string) []int { if s == "." { return nil } - idx := []int{0} + idx := make([]int, 1, 3) off := 0 end := false From 870c049f524835254b36089a4f746d9f738ecb3e Mon Sep 17 00:00:00 2001 From: Brandon Philips Date: Sat, 25 Jan 2014 15:57:16 -0800 Subject: [PATCH 2/6] fix(dns.go): Pref is now Preference Simple mistake from, what I guess, was an earlier API change. --- dns.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dns.go b/dns.go index b70ba3e4..4a5a6967 100644 --- a/dns.go +++ b/dns.go @@ -18,7 +18,7 @@ // // r := new(dns.MX) // r.Hdr = dns.RR_Header{Name: "miek.nl.", Rrtype: dns.TypeMX, Class: dns.ClassINET, Ttl: 3600} -// r.Pref = 10 +// r.Preference = 10 // r.Mx = "mx.miek.nl." // // Or directly from a string: From 3768fa008342c1c0ca68b30de2c84006574507de Mon Sep 17 00:00:00 2001 From: Alex Ciuba Date: Sat, 25 Jan 2014 21:09:28 -0500 Subject: [PATCH 3/6] Optimize compressionLenHelper --- msg.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/msg.go b/msg.go index 99e6a4e7..6d498ae2 100644 --- a/msg.go +++ b/msg.go @@ -1596,10 +1596,12 @@ func (dns *Msg) Copy() *Msg { // Put the parts of the name in the compression map. func compressionLenHelper(c map[string]int, s string) { pref := "" - lbs := SplitDomainName(s) + lbs := Split(s) for j := len(lbs) - 1; j >= 0; j-- { - c[lbs[j]+"."+pref] = 1 + len(pref) + len(lbs[j]) - pref = lbs[j] + "." + pref + l := 1 + len(pref) + pref = s[lbs[j]:] + l += len(pref) + c[pref] = l } } From be9e7276e9cc26a3af9b14396454aef574684d53 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Sun, 26 Jan 2014 13:05:48 +0000 Subject: [PATCH 4/6] Update documentation --- kscan.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kscan.go b/kscan.go index 22492c27..6c477b80 100644 --- a/kscan.go +++ b/kscan.go @@ -20,10 +20,10 @@ func (k *DNSKEY) NewPrivateKey(s string) (PrivateKey, error) { return k.ReadPrivateKey(strings.NewReader(s), "") } -// NewPrivateKey reads a private key from the io.Reader q. The string file is +// ReadPrivateKey reads a private key from the io.Reader q. The string file is // only used in error reporting. // The public key must be -// known, because some cryptographics algorithms embed the public inside the privatekey. +// known, because some cryptographic algorithms embed the public inside the privatekey. func (k *DNSKEY) ReadPrivateKey(q io.Reader, file string) (PrivateKey, error) { m, e := parseKey(q, file) if m == nil { From 2a659fce45d7acf8aaa7a54fb17c95d905198592 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Sun, 26 Jan 2014 19:53:49 +0000 Subject: [PATCH 5/6] dnssec: don't override OrigTtl in sig When creating a signature and the OrigTtl is already set don't override it. --- dnssec.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dnssec.go b/dnssec.go index 83a018eb..38a2dbd2 100644 --- a/dnssec.go +++ b/dnssec.go @@ -201,7 +201,7 @@ func (k *DNSKEY) ToDS(h int) *DS { } // Sign signs an RRSet. The signature needs to be filled in with -// the values: Inception, Expiration, KeyTag, SignerName and Algorithm. +// the values: OrigTtl, Inception, Expiration, KeyTag, SignerName and Algorithm. // The rest is copied from the RRset. Sign returns true when the signing went OK, // otherwise false. // There is no check if RRSet is a proper (RFC 2181) RRSet. @@ -217,7 +217,9 @@ func (rr *RRSIG) Sign(k PrivateKey, rrset []RR) error { rr.Hdr.Rrtype = TypeRRSIG rr.Hdr.Name = rrset[0].Header().Name rr.Hdr.Class = rrset[0].Header().Class - rr.OrigTtl = rrset[0].Header().Ttl + if rr.OrigTtl != 0 { // If set don't override + rr.OrigTtl = rrset[0].Header().Ttl + } rr.TypeCovered = rrset[0].Header().Rrtype rr.TypeCovered = rrset[0].Header().Rrtype rr.Labels = uint8(CountLabel(rrset[0].Header().Name)) From c97bb6d79d6c556cca6d0ff8a27b6048b1b5ae19 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Sun, 26 Jan 2014 20:22:19 +0000 Subject: [PATCH 6/6] The right way around --- dnssec.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dnssec.go b/dnssec.go index 38a2dbd2..2dd77fd1 100644 --- a/dnssec.go +++ b/dnssec.go @@ -217,7 +217,7 @@ func (rr *RRSIG) Sign(k PrivateKey, rrset []RR) error { rr.Hdr.Rrtype = TypeRRSIG rr.Hdr.Name = rrset[0].Header().Name rr.Hdr.Class = rrset[0].Header().Class - if rr.OrigTtl != 0 { // If set don't override + if rr.OrigTtl == 0 { // If set don't override rr.OrigTtl = rrset[0].Header().Ttl } rr.TypeCovered = rrset[0].Header().Rrtype