mirror of
https://github.com/slackhq/nebula.git
synced 2025-11-08 14:33:57 +01:00
Some checks failed
gofmt / Run gofmt (push) Successful in 37s
smoke-extra / Run extra smoke tests (push) Failing after 20s
smoke / Run multi node smoke test (push) Failing after 1m25s
Build and test / Build all and test on ubuntu-linux (push) Failing after 18m51s
Build and test / Build and test on linux with boringcrypto (push) Failing after 2m44s
Build and test / Build and test on linux with pkcs11 (push) Failing after 2m27s
Build and test / Build and test on macos-latest (push) Has been cancelled
Build and test / Build and test on windows-latest (push) Has been cancelled
* upgrade to yaml.v3 The main nice fix here is that maps unmarshal into `map[string]any` instead of `map[any]any`, so it cleans things up a bit. * add config.AsBool Since yaml.v3 doesn't automatically convert yes to bool now, for backwards compat * use type aliases for m * more cleanup * more cleanup * more cleanup * go mod cleanup
74 lines
1.6 KiB
Go
74 lines
1.6 KiB
Go
package nebula
|
|
|
|
import (
|
|
"net/netip"
|
|
"testing"
|
|
|
|
"github.com/miekg/dns"
|
|
"github.com/sirupsen/logrus"
|
|
"github.com/slackhq/nebula/config"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestParsequery(t *testing.T) {
|
|
l := logrus.New()
|
|
hostMap := &HostMap{}
|
|
ds := newDnsRecords(l, &CertState{}, hostMap)
|
|
addrs := []netip.Addr{
|
|
netip.MustParseAddr("1.2.3.4"),
|
|
netip.MustParseAddr("1.2.3.5"),
|
|
netip.MustParseAddr("fd01::24"),
|
|
netip.MustParseAddr("fd01::25"),
|
|
}
|
|
ds.Add("test.com.com", addrs)
|
|
|
|
m := &dns.Msg{}
|
|
m.SetQuestion("test.com.com", dns.TypeA)
|
|
ds.parseQuery(m, nil)
|
|
assert.NotNil(t, m.Answer)
|
|
assert.Equal(t, "1.2.3.4", m.Answer[0].(*dns.A).A.String())
|
|
|
|
m = &dns.Msg{}
|
|
m.SetQuestion("test.com.com", dns.TypeAAAA)
|
|
ds.parseQuery(m, nil)
|
|
assert.NotNil(t, m.Answer)
|
|
assert.Equal(t, "fd01::24", m.Answer[0].(*dns.AAAA).AAAA.String())
|
|
}
|
|
|
|
func Test_getDnsServerAddr(t *testing.T) {
|
|
c := config.NewC(nil)
|
|
|
|
c.Settings["lighthouse"] = map[string]any{
|
|
"dns": map[string]any{
|
|
"host": "0.0.0.0",
|
|
"port": "1",
|
|
},
|
|
}
|
|
assert.Equal(t, "0.0.0.0:1", getDnsServerAddr(c))
|
|
|
|
c.Settings["lighthouse"] = map[string]any{
|
|
"dns": map[string]any{
|
|
"host": "::",
|
|
"port": "1",
|
|
},
|
|
}
|
|
assert.Equal(t, "[::]:1", getDnsServerAddr(c))
|
|
|
|
c.Settings["lighthouse"] = map[string]any{
|
|
"dns": map[string]any{
|
|
"host": "[::]",
|
|
"port": "1",
|
|
},
|
|
}
|
|
assert.Equal(t, "[::]:1", getDnsServerAddr(c))
|
|
|
|
// Make sure whitespace doesn't mess us up
|
|
c.Settings["lighthouse"] = map[string]any{
|
|
"dns": map[string]any{
|
|
"host": "[::] ",
|
|
"port": "1",
|
|
},
|
|
}
|
|
assert.Equal(t, "[::]:1", getDnsServerAddr(c))
|
|
}
|