From 6d59a566759da5729d7eb89a8e1888fc612f03cf Mon Sep 17 00:00:00 2001 From: Solomon Hykes Date: Sun, 10 Aug 2014 01:12:52 +0000 Subject: [PATCH] opts.IpOpt: a helper to parse IP addressed from the command line Signed-off-by: Solomon Hykes --- opts/ip.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 opts/ip.go 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() +}