code: func (c *Client) HandleChannelOpen(channelType string) <-chan NewChannel {
  	c.mu.Lock()
  	defer c.mu.Unlock()
  	if c.channelHandlers == nil {
  		// The SSH channel has been closed.
  		c := make(chan NewChannel)
  		close(c)
  		return c
  	}
  
  	ch := c.channelHandlers[channelType]
  	if ch != nil {
  		return nil
  	}
  
  	ch = make(chan NewChannel, 16)
  	c.channelHandlers[channelType] = ch
  	return ch
  }
docs: // HandleChannelOpen returns a channel on which NewChannel requests
  // for the given type are sent. If the type already is being handled,
  // nil is returned. The channel is closed when the connection is closed.