示例#1
0
文件: main.go 项目: codingbunch/weave
func main() {
	ignoreIfaceNames := make(stringList)

	mflag.Var(&ignoreIfaceNames, []string{"-ignore-iface"}, "name of interface to ignore)")
	mflag.Parse()

	if len(mflag.Args()) < 1 {
		fmt.Fprintln(os.Stderr, "usage: netcheck [--ignore-iface <iface-name>] network-cidr")
		os.Exit(1)
	}

	cidrStr := mflag.Args()[0]
	addr, ipnet, err := net.ParseCIDR(cidrStr)
	if err != nil {
		fatal(err)
	}
	if ipnet.IP.Equal(addr) {
		err = weavenet.CheckNetworkFree(ipnet, ignoreIfaceNames)
	} else {
		err = weavenet.CheckAddressOverlap(addr, ignoreIfaceNames)
	}
	if err != nil {
		fatal(err)
	}
	os.Exit(0)
}
示例#2
0
文件: netcheck.go 项目: brb/weave
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
}
示例#3
0
文件: netcheck.go 项目: gnomix/weave
func main() {
	if len(os.Args) <= 1 {
		os.Exit(0)
	}

	cidrStr := os.Args[1]
	addr, ipnet, err := net.ParseCIDR(cidrStr)
	if err != nil {
		fatal(err)
	}
	if ipnet.IP.Equal(addr) {
		err = weavenet.CheckNetworkFree(ipnet)
	} else {
		err = weavenet.CheckAddressOverlap(addr)
	}
	if err != nil {
		fatal(err)
	}
	os.Exit(0)
}