Skip to content
Snippets Groups Projects
configuration.go 578 B
Newer Older
  • Learn to ignore specific revisions
  • André Sterba's avatar
    André Sterba committed
    package configuration
    
    import (
    	"fmt"
    	"net"
    )
    
    
    André Sterba's avatar
    André Sterba committed
    // IPConfig represents an interface configuration for a cEOS instance
    
    André Sterba's avatar
    André Sterba committed
    type IPConfig struct {
    
    André Sterba's avatar
    André Sterba committed
    	IP           net.IP `bson:"ip,omitempty"`
    	PrefixLength int    `bson:"prefix_length,omitempty"`
    
    André Sterba's avatar
    André Sterba committed
    // New creates a new IPConfig
    
    André Sterba's avatar
    André Sterba committed
    func New(ip string, prefixLength int) (IPConfig, error) {
    	newIPConfig := IPConfig{}
    	parsedIP := net.ParseIP(ip)
    	if parsedIP == nil {
    
    André Sterba's avatar
    André Sterba committed
    		return newIPConfig, fmt.Errorf("%s can not be parsed to an IP", ip)
    
    André Sterba's avatar
    André Sterba committed
    	}
    
    	newIPConfig.IP = parsedIP
    	newIPConfig.PrefixLength = prefixLength
    
    	return newIPConfig, nil
    }