mirror of
https://github.com/miekg/dns.git
synced 2025-10-19 22:01:01 +02:00
Documentation
Need to think about the non-existing root-label and the label functions.
This commit is contained in:
parent
ea6da640d7
commit
2cb265697e
@ -5,6 +5,13 @@
|
|||||||
// DNSSEC (DNS Security Extension) adds a layer of security to the DNS. It
|
// DNSSEC (DNS Security Extension) adds a layer of security to the DNS. It
|
||||||
// uses public key cryptography to securely sign resource records. The
|
// uses public key cryptography to securely sign resource records. The
|
||||||
// public keys are stored in DNSKEY records and the signatures in RRSIG records.
|
// public keys are stored in DNSKEY records and the signatures in RRSIG records.
|
||||||
|
//
|
||||||
|
// Requesting DNSSEC information for a zone is done by adding the DO (DNSSEC OK) bit
|
||||||
|
// to an request.
|
||||||
|
//
|
||||||
|
// // Set UDP bufsize to 4096 and enable the DO bit
|
||||||
|
// m := new(dns.Msg)
|
||||||
|
// m.SetEdns0(4096, true)
|
||||||
package dns
|
package dns
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
@ -27,6 +27,10 @@ func TestCompareLabels(t *testing.T) {
|
|||||||
t.Logf("%s with %s should be %d", s1, s5, 1)
|
t.Logf("%s with %s should be %d", s1, s5, 1)
|
||||||
t.Fail()
|
t.Fail()
|
||||||
}
|
}
|
||||||
|
if CompareLabels(".", ".") != 1 {
|
||||||
|
t.Logf("%s with %s should be %d", ".", ".", 1)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSplitLabels(t *testing.T) {
|
func TestSplitLabels(t *testing.T) {
|
||||||
@ -51,4 +55,9 @@ func TestSplitLabels(t *testing.T) {
|
|||||||
t.Logf("Labels should be 3, %s\n", s4)
|
t.Logf("Labels should be 3, %s\n", s4)
|
||||||
t.Fail()
|
t.Fail()
|
||||||
}
|
}
|
||||||
|
// Should this be 1 or 0...
|
||||||
|
if len(SplitLabels(".")) != 1 {
|
||||||
|
t.Logf("Labels should be 1, %s\n", ".")
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,8 @@ package dns
|
|||||||
// Holds a bunch of helper functions for dealing with labels.
|
// Holds a bunch of helper functions for dealing with labels.
|
||||||
|
|
||||||
// SplitLabels splits a domainname string into its labels.
|
// SplitLabels splits a domainname string into its labels.
|
||||||
|
// www.miek.nl. returns []string{"www", "miek", "nl"}
|
||||||
|
// . returns []string{"."}
|
||||||
func SplitLabels(s string) []string {
|
func SplitLabels(s string) []string {
|
||||||
k := 0
|
k := 0
|
||||||
labels := make([]string, 0)
|
labels := make([]string, 0)
|
||||||
@ -30,8 +32,11 @@ func SplitLabels(s string) []string {
|
|||||||
// returns how many labels they have in common starting from the right.
|
// returns how many labels they have in common starting from the right.
|
||||||
// The comparison stops at the first inequality.
|
// The comparison stops at the first inequality.
|
||||||
//
|
//
|
||||||
// www.miek.nl and miek.nl have two labels in common: miek and nl
|
// www.miek.nl. and miek.nl. have two labels in common: miek and nl
|
||||||
// www.miek.nl and www.bla.nl have one label in common: nl
|
// www.miek.nl. and www.bla.nl. have one label in common: nl
|
||||||
|
// Be aware of these corner cases:
|
||||||
|
// . and . have one label in common
|
||||||
|
// . and "" (empty) have one label in common
|
||||||
func CompareLabels(s1, s2 string) (n int) {
|
func CompareLabels(s1, s2 string) (n int) {
|
||||||
l1 := SplitLabels(s1)
|
l1 := SplitLabels(s1)
|
||||||
l2 := SplitLabels(s2)
|
l2 := SplitLabels(s2)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user