code: func Can(action string, addr string, whitelist, blacklist *Permissions) bool {
  	if !strings.Contains(addr, ":") {
  		addr = addr + ":80"
  	}
  	host, strport, err := net.SplitHostPort(addr)
  
  	if err != nil {
  		return false
  	}
  
  	port, err := strconv.Atoi(strport)
  
  	if err != nil {
  		return false
  	}
  
  	return (whitelist == nil || whitelist.Can(action, host, port)) &&
  		(blacklist == nil || !blacklist.Can(action, host, port))
  }
docs: // Can tests whether the given action and address is allowed by the whitelist and blacklist.