Browse Source

opts.IPVal returns an error on incorrect input

Signed-off-by: Solomon Hykes <solomon@docker.com>
Solomon Hykes 11 năm trước cách đây
mục cha
commit
ca11b77471
2 tập tin đã thay đổi với 5 bổ sung8 xóa
  1. 0 6
      docker/daemon.go
  2. 5 2
      opts/ip.go

+ 0 - 6
docker/daemon.go

@@ -39,12 +39,6 @@ func mainDaemon() {
 	if !daemonCfg.EnableIptables && !daemonCfg.InterContainerCommunication {
 		log.Fatal("You specified --iptables=false with --icc=false. ICC uses iptables to function. Please set --icc or --iptables to true.")
 	}
-
-	// FIXME: move this validation to opts.IpOpt
-	if daemonCfg.DefaultIp == nil {
-		log.Fatalf("Specified --ip is not in correct format \"0.0.0.0\".")
-	}
-
 	eng := engine.New()
 	signal.Trap(eng.Shutdown)
 	// Load builtins

+ 5 - 2
opts/ip.go

@@ -1,6 +1,7 @@
 package opts
 
 import (
+	"fmt"
 	"net"
 )
 
@@ -17,8 +18,10 @@ func NewIpOpt(ref *net.IP, defaultVal string) *IpOpt {
 }
 
 func (o *IpOpt) Set(val string) error {
-	// FIXME: return a parse error if the value is not a valid IP?
-	// We are not changing this now to preserve behavior while refactoring.
+	ip := net.ParseIP(val)
+	if ip == nil {
+		return fmt.Errorf("incorrect IP format")
+	}
 	(*o.IP) = net.ParseIP(val)
 	return nil
 }