addrs.go 983 Bytes
Newer Older
1 2 3
package swarm

import (
Cory Schwartz's avatar
Cory Schwartz committed
4
	filter "github.com/libp2p/go-maddr-filter"
5
	ma "github.com/multiformats/go-multiaddr"
6 7 8 9
	mamask "github.com/whyrusleeping/multiaddr-filter"
)

// http://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml
10
var lowTimeoutFilters = ma.NewFilters()
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

func init() {
	for _, p := range []string{
		"/ip4/10.0.0.0/ipcidr/8",
		"/ip4/100.64.0.0/ipcidr/10",
		"/ip4/169.254.0.0/ipcidr/16",
		"/ip4/172.16.0.0/ipcidr/12",
		"/ip4/192.0.0.0/ipcidr/24",
		"/ip4/192.0.0.0/ipcidr/29",
		"/ip4/192.0.0.8/ipcidr/32",
		"/ip4/192.0.0.170/ipcidr/32",
		"/ip4/192.0.0.171/ipcidr/32",
		"/ip4/192.0.2.0/ipcidr/24",
		"/ip4/192.168.0.0/ipcidr/16",
		"/ip4/198.18.0.0/ipcidr/15",
		"/ip4/198.51.100.0/ipcidr/24",
		"/ip4/203.0.113.0/ipcidr/24",
		"/ip4/240.0.0.0/ipcidr/4",
	} {
		f, err := mamask.NewMask(p)
		if err != nil {
			panic("error in lowTimeoutFilters init: " + err.Error())
		}
Cory Schwartz's avatar
Cory Schwartz committed
34
		lowTimeoutFilters.AddFilter(*f, filter.ActionDeny)
35 36
	}
}