code: func NewListener(inner net.Listener, config *Config) net.Listener {
  	l := new(listener)
  	l.Listener = inner
  	l.config = config
  	return l
  }
docs: // NewListener creates a Listener which accepts connections from an inner
  // Listener and wraps each connection with Server.
  // The configuration config must be non-nil and must include
  // at least one certificate or else set GetCertificate.