mirror of
https://github.com/netbirdio/netbird.git
synced 2024-12-01 20:43:43 +01:00
9c4bf1e899
Handle original search domains in resolv.conf type implementations. - parse the original resolv.conf file - merge the search domains - ignore the domain keyword - append any other config lines (sortstlist, options) - fix read origin resolv.conf from bkp in resolvconf implementation - fix line length validation - fix number of search domains validation
63 lines
1.7 KiB
Go
63 lines
1.7 KiB
Go
package dns
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
func Test_mergeSearchDomains(t *testing.T) {
|
|
searchDomains := []string{"a", "b"}
|
|
originDomains := []string{"a", "b"}
|
|
mergedDomains := mergeSearchDomains(searchDomains, originDomains)
|
|
if len(mergedDomains) != 4 {
|
|
t.Errorf("invalid len of result domains: %d, want: %d", len(mergedDomains), 4)
|
|
}
|
|
}
|
|
|
|
func Test_mergeSearchTooMuchDomains(t *testing.T) {
|
|
searchDomains := []string{"a", "b", "c", "d", "e", "f", "g"}
|
|
originDomains := []string{"h", "i"}
|
|
mergedDomains := mergeSearchDomains(searchDomains, originDomains)
|
|
if len(mergedDomains) != 6 {
|
|
t.Errorf("invalid len of result domains: %d, want: %d", len(mergedDomains), 6)
|
|
}
|
|
}
|
|
|
|
func Test_mergeSearchTooMuchDomainsInOrigin(t *testing.T) {
|
|
searchDomains := []string{"a", "b"}
|
|
originDomains := []string{"c", "d", "e", "f", "g"}
|
|
mergedDomains := mergeSearchDomains(searchDomains, originDomains)
|
|
if len(mergedDomains) != 6 {
|
|
t.Errorf("invalid len of result domains: %d, want: %d", len(mergedDomains), 6)
|
|
}
|
|
}
|
|
|
|
func Test_mergeSearchTooLongDomain(t *testing.T) {
|
|
searchDomains := []string{getLongLine()}
|
|
originDomains := []string{"b"}
|
|
mergedDomains := mergeSearchDomains(searchDomains, originDomains)
|
|
if len(mergedDomains) != 1 {
|
|
t.Errorf("invalid len of result domains: %d, want: %d", len(mergedDomains), 1)
|
|
}
|
|
|
|
searchDomains = []string{"b"}
|
|
originDomains = []string{getLongLine()}
|
|
|
|
mergedDomains = mergeSearchDomains(searchDomains, originDomains)
|
|
if len(mergedDomains) != 1 {
|
|
t.Errorf("invalid len of result domains: %d, want: %d", len(mergedDomains), 1)
|
|
}
|
|
}
|
|
|
|
func getLongLine() string {
|
|
x := "search "
|
|
for {
|
|
for i := 0; i <= 9; i++ {
|
|
if len(x) > fileMaxLineCharsLimit {
|
|
return x
|
|
}
|
|
x = fmt.Sprintf("%s%d", x, i)
|
|
}
|
|
}
|
|
}
|