Browse Source

opts.IpOpt: a helper to parse IP addressed from the command line

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

+ 28 - 0
opts/ip.go

@@ -0,0 +1,28 @@
+package opts
+
+import (
+	"net"
+)
+
+type IpOpt struct {
+	*net.IP
+}
+
+func NewIpOpt(ref *net.IP, defaultVal string) *IpOpt {
+	o := &IpOpt{
+		IP: ref,
+	}
+	o.Set(defaultVal)
+	return o
+}
+
+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.
+	(*o.IP) = net.ParseIP(val)
+	return nil
+}
+
+func (o *IpOpt) String() string {
+	return (*o.IP).String()
+}