* Module name changed to `github.com/rajch/weave` * Added environment variable `CHECKPOINT_DISABLE=1` to default manifests, to bypass weaveworks telemetry
29 lines
661 B
Go
29 lines
661 B
Go
/* netcheck: check whether a given network or address overlaps with any existing routes */
|
|
package main
|
|
|
|
import (
|
|
"net"
|
|
|
|
weavenet "github.com/rajch/weave/net"
|
|
)
|
|
|
|
func netcheck(args []string) error {
|
|
if len(args) < 1 {
|
|
cmdUsage("netcheck", "<cidr> [<interface-to-ignore> ...]")
|
|
}
|
|
addr, ipnet, err := net.ParseCIDR(args[0])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
ignoreIfaceNames := make(map[string]struct{})
|
|
for _, ifName := range args[1:] {
|
|
ignoreIfaceNames[ifName] = struct{}{}
|
|
}
|
|
if ipnet.IP.Equal(addr) {
|
|
err = weavenet.CheckNetworkFree(ipnet, ignoreIfaceNames)
|
|
} else {
|
|
err = weavenet.CheckAddressOverlap(addr, ignoreIfaceNames)
|
|
}
|
|
return err
|
|
}
|