code: func (s *ServerTLS) Listen() (net.Listener, error) {
  	// The *tls* plugin must make sure that multiple conflicting
  	// TLS configuration return an error: it can only be specified once.
  	tlsConfig := new(tls.Config)
  	for _, conf := range s.zones {
  		// Should we error if some configs *don't* have TLS?
  		tlsConfig = conf.TLSConfig
  	}
  
  	var (
  		l   net.Listener
  		err error
  	)
  
  	if tlsConfig == nil {
  		l, err = net.Listen("tcp", s.Addr[len(TransportTLS+"://"):])
  	} else {
  		l, err = tls.Listen("tcp", s.Addr[len(TransportTLS+"://"):], tlsConfig)
  	}
  
  	if err != nil {
  		return nil, err
  	}
  	return l, nil
  }
docs: // Listen implements caddy.TCPServer interface.