code: func NewListener(inner net.Listener, config *Config) (net.Listener, error) {
  	if config != nil && config.NonBlocking {
  		return nil, errors.New("listening not possible in non-blocking mode")
  	}
  	l := new(Listener)
  	l.Listener = inner
  	l.config = config
  	return l, nil
  }
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.