diff --git a/opts/ip.go b/opts/ip.go new file mode 100644 index 0000000000..3610b14538 --- /dev/null +++ b/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() +}