Merge pull request #1053 from weaveworks/437-check-address
Check addresses supplied by users for conflict with existing routes. Fixes #437. Fixes #480.
This commit is contained in:
commit
ecfc5d091d
4 files changed
+29
-6
No files matched your search
@@ -1,4 +1,4 @@
|
||||
/* netcheck: check whether a given network overlaps with any existing routes */
|
||||
/* netcheck: check whether a given network or address overlaps with any existing routes */
|
||||
package main
|
||||
|
||||
import (
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
)
|
||||
|
||||
func fatal(err error) {
|
||||
fmt.Println(err)
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
@@ -19,12 +19,17 @@ func main() {
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
ipRangeStr := os.Args[1]
|
||||
_, ipnet, err := net.ParseCIDR(ipRangeStr)
|
||||
cidrStr := os.Args[1]
|
||||
addr, ipnet, err := net.ParseCIDR(cidrStr)
|
||||
if err != nil {
|
||||
fatal(err)
|
||||
}
|
||||
if err := weavenet.CheckNetworkFree(ipnet); err != nil {
|
||||
if ipnet.IP.Equal(addr) {
|
||||
err = weavenet.CheckNetworkFree(ipnet)
|
||||
} else {
|
||||
err = weavenet.CheckAddressOverlap(addr)
|
||||
}
|
||||
if err != nil {
|
||||
fatal(err)
|
||||
}
|
||||
os.Exit(0)
|
||||
|
||||
Reference in new issue
Block a user