net_test.go 1.3 KB

123456789101112131415161718192021222324252627
  1. package common
  2. import (
  3. "github.com/stretchr/testify/assert"
  4. "inet.af/netaddr"
  5. "testing"
  6. )
  7. func TestConnectionFilter(t *testing.T) {
  8. f := connectionFilter{whitelist: map[string]netaddr.IPPrefix{}}
  9. assert.False(t, f.ShouldBeSkipped(netaddr.MustParseIP("127.0.0.1"), netaddr.MustParseIP("127.0.0.1")))
  10. assert.False(t, f.ShouldBeSkipped(netaddr.MustParseIP("192.168.1.1"), netaddr.MustParseIP("127.0.0.1")))
  11. assert.True(t, f.ShouldBeSkipped(netaddr.MustParseIP("1.1.1.1"), netaddr.MustParseIP("2.2.2.2")))
  12. assert.False(t, f.ShouldBeSkipped(netaddr.MustParseIP("1.1.1.1"), netaddr.MustParseIP("192.168.1.1")))
  13. // because the actual dest is allowed, the dest is added to whitelist
  14. assert.False(t, f.ShouldBeSkipped(netaddr.MustParseIP("1.1.1.1"), netaddr.MustParseIP("2.2.2.2")))
  15. assert.True(t, f.ShouldBeSkipped(netaddr.MustParseIP("2.2.2.2"), netaddr.MustParseIP("2.2.2.2")))
  16. f.WhitelistPrefix(netaddr.MustParseIPPrefix("2.2.2.0/24"))
  17. assert.False(t, f.ShouldBeSkipped(netaddr.MustParseIP("2.2.2.2"), netaddr.MustParseIP("2.2.2.2")))
  18. assert.True(t, f.ShouldBeSkipped(netaddr.MustParseIP("3.3.3.3"), netaddr.MustParseIP("3.3.3.3")))
  19. f.WhitelistPrefix(netaddr.MustParseIPPrefix("4.4.4.4/32"))
  20. assert.False(t, f.ShouldBeSkipped(netaddr.MustParseIP("3.3.3.3"), netaddr.MustParseIP("4.4.4.4")))
  21. }