code: func MTLSListener(addr string, config *tls.Config) (Listener, error) {
  	if config == nil {
  		config = DefaultTLSConfig
  	}
  	ln, err := net.Listen("tcp", addr)
  	if err != nil {
  		return nil, err
  	}
  
  	l := &mtlsListener{
  		ln:       tls.NewListener(tcpKeepAliveListener{ln.(*net.TCPListener)}, config),
  		connChan: make(chan net.Conn, 1024),
  		errChan:  make(chan error, 1),
  	}
  	go l.listenLoop()
  
  	return l, nil
  }
docs: // MTLSListener creates a Listener for multiplex-TLS proxy server.