code: func (b *Builder) expandOptionalAddrs(name string, s *string) []string {
  	if s == nil || *s == "" {
  		return nil
  	}
  
  	x, err := template.Parse(*s)
  	if err != nil {
  		b.err = multierror.Append(b.err, fmt.Errorf("%s: error parsing %q: %s", name, *s, err))
  		return nil
  	}
  
  	if x != *s {
  		// A template has been expanded, split the results from go-sockaddr
  		return strings.Fields(x)
  	} else {
  		// No template has been expanded, pass through the input
  		return []string{*s}
  	}
  }
docs: // expandOptionalAddrs expands the go-sockaddr template in s and returns the
  // result as a list of strings. If s does not contain a go-sockaddr template,
  // the result list will contain the input string as a single element with no
  // error set. In contrast to expandAddrs, expandOptionalAddrs does not validate
  // if the result contains valid addresses and returns a list of strings.
  // However, if the expansion of the go-sockaddr template fails an error is set.