code: func (s *Server) Close() error {
  	conns := []io.Closer{
  		s.sconn,
  		s.clientConn,
  		s.serverConn,
  		s.targetConn,
  		s.remoteClient,
  	}
  
  	var errs []error
  
  	for _, c := range conns {
  		if c == nil {
  			continue
  		}
  
  		err := c.Close()
  		if err != nil {
  			errs = append(errs, err)
  		}
  	}
  
  	// Signal to waiting goroutines that the server is closing (for example,
  	// the keep alive loop).
  	s.closeCancel()
  
  	return trace.NewAggregate(errs...)
  }
docs: // Close will close all underlying connections that the forwarding server holds.