github.com/lmars/docker@v1.6.0-rc2/opts/ip.go (about)

     1  package opts
     2  
     3  import (
     4  	"fmt"
     5  	"net"
     6  )
     7  
     8  type IpOpt struct {
     9  	*net.IP
    10  }
    11  
    12  func NewIpOpt(ref *net.IP, defaultVal string) *IpOpt {
    13  	o := &IpOpt{
    14  		IP: ref,
    15  	}
    16  	o.Set(defaultVal)
    17  	return o
    18  }
    19  
    20  func (o *IpOpt) Set(val string) error {
    21  	ip := net.ParseIP(val)
    22  	if ip == nil {
    23  		return fmt.Errorf("%s is not an ip address", val)
    24  	}
    25  	(*o.IP) = net.ParseIP(val)
    26  	return nil
    27  }
    28  
    29  func (o *IpOpt) String() string {
    30  	return (*o.IP).String()
    31  }