const debugMux …
type chanList …
func (c *chanList) add(ch *channel) uint32 { … }
func (c *chanList) getChan(id uint32) *channel { … }
func (c *chanList) remove(id uint32) { … }
func (c *chanList) dropAll() []*channel { … }
type mux …
var globalOff …
func (m *mux) Wait() error { … }
func newMux(p packetConn) *mux { … }
func (m *mux) sendMessage(msg interface{ … }
func (m *mux) SendRequest(name string, wantReply bool, payload []byte) (bool, []byte, error) { … }
func (m *mux) ackRequest(ok bool, data []byte) error { … }
func (m *mux) Close() error { … }
func (m *mux) loop() { … }
func (m *mux) onePacket() error { … }
func (m *mux) handleGlobalPacket(packet []byte) error { … }
func (m *mux) handleChannelOpen(packet []byte) error { … }
func (m *mux) OpenChannel(chanType string, extra []byte) (Channel, <-chan *Request, error) { … }
func (m *mux) openChannel(chanType string, extra []byte) (*channel, error) { … }
func (m *mux) handleUnknownChannelPacket(id uint32, packet []byte) error { … }