SYMBOL INDEX (236 symbols across 40 files) FILE: demos/groktunnel/main.go function main (line 21) | func main() { function serve (line 71) | func serve(vmux *vhost.HTTPMuxer, host, port string) { function join (line 106) | func join(a io.ReadWriteCloser, b io.ReadWriteCloser) { function newSubdomain (line 113) | func newSubdomain() string { function fatal (line 126) | func fatal(err error) { FILE: golang/codec/codec_test.go function TestMarshalUnmarshal (line 8) | func TestMarshalUnmarshal(t *testing.T) { function TestEncodeDecode (line 86) | func TestEncodeDecode(t *testing.T) { FILE: golang/codec/decoder.go type Decoder (line 13) | type Decoder struct method Decode (line 22) | func (dec *Decoder) Decode() (Message, error) { function NewDecoder (line 18) | func NewDecoder(r io.Reader) *Decoder { function readPacket (line 38) | func readPacket(c io.Reader) ([]byte, error) { function decode (line 71) | func decode(packet []byte) (Message, error) { type Unmarshaler (line 100) | type Unmarshaler interface function Unmarshal (line 104) | func Unmarshal(b []byte, v interface{}) error { FILE: golang/codec/encoder.go type Encoder (line 9) | type Encoder struct method Encode (line 18) | func (enc *Encoder) Encode(msg interface{}) error { function NewEncoder (line 14) | func NewEncoder(w io.Writer) *Encoder { type Marshaler (line 39) | type Marshaler interface function Marshal (line 43) | func Marshal(v interface{}) ([]byte, error) { FILE: golang/codec/message.go constant msgChannelOpen (line 4) | msgChannelOpen = iota + 100 constant msgChannelOpenConfirm (line 5) | msgChannelOpenConfirm constant msgChannelOpenFailure (line 6) | msgChannelOpenFailure constant msgChannelWindowAdjust (line 7) | msgChannelWindowAdjust constant msgChannelData (line 8) | msgChannelData constant msgChannelEOF (line 9) | msgChannelEOF constant msgChannelClose (line 10) | msgChannelClose type Message (line 25) | type Message interface FILE: golang/codec/message_close.go type CloseMessage (line 8) | type CloseMessage struct method String (line 12) | func (msg CloseMessage) String() string { method Channel (line 16) | func (msg CloseMessage) Channel() (uint32, bool) { method MarshalMux (line 20) | func (msg CloseMessage) MarshalMux() ([]byte, error) { method UnmarshalMux (line 27) | func (msg *CloseMessage) UnmarshalMux(b []byte) error { FILE: golang/codec/message_data.go type DataMessage (line 8) | type DataMessage struct method String (line 14) | func (msg DataMessage) String() string { method Channel (line 19) | func (msg DataMessage) Channel() (uint32, bool) { method MarshalMux (line 23) | func (msg DataMessage) MarshalMux() ([]byte, error) { method UnmarshalMux (line 31) | func (msg *DataMessage) UnmarshalMux(b []byte) error { FILE: golang/codec/message_eof.go type EOFMessage (line 8) | type EOFMessage struct method String (line 12) | func (msg EOFMessage) String() string { method Channel (line 16) | func (msg EOFMessage) Channel() (uint32, bool) { method MarshalMux (line 20) | func (msg EOFMessage) MarshalMux() ([]byte, error) { method UnmarshalMux (line 27) | func (msg *EOFMessage) UnmarshalMux(b []byte) error { FILE: golang/codec/message_open.go type OpenMessage (line 8) | type OpenMessage struct method String (line 14) | func (msg OpenMessage) String() string { method Channel (line 19) | func (msg OpenMessage) Channel() (uint32, bool) { method MarshalMux (line 23) | func (msg OpenMessage) MarshalMux() ([]byte, error) { method UnmarshalMux (line 32) | func (msg *OpenMessage) UnmarshalMux(b []byte) error { FILE: golang/codec/message_openconfirm.go type OpenConfirmMessage (line 8) | type OpenConfirmMessage struct method String (line 15) | func (msg OpenConfirmMessage) String() string { method Channel (line 20) | func (msg OpenConfirmMessage) Channel() (uint32, bool) { method MarshalMux (line 24) | func (msg OpenConfirmMessage) MarshalMux() ([]byte, error) { method UnmarshalMux (line 34) | func (msg *OpenConfirmMessage) UnmarshalMux(b []byte) error { FILE: golang/codec/message_openfailure.go type OpenFailureMessage (line 8) | type OpenFailureMessage struct method String (line 12) | func (msg OpenFailureMessage) String() string { method Channel (line 16) | func (msg OpenFailureMessage) Channel() (uint32, bool) { method MarshalMux (line 20) | func (msg OpenFailureMessage) MarshalMux() ([]byte, error) { method UnmarshalMux (line 27) | func (msg *OpenFailureMessage) UnmarshalMux(b []byte) error { FILE: golang/codec/message_windowadjust.go type WindowAdjustMessage (line 8) | type WindowAdjustMessage struct method String (line 13) | func (msg WindowAdjustMessage) String() string { method Channel (line 18) | func (msg WindowAdjustMessage) Channel() (uint32, bool) { method MarshalMux (line 22) | func (msg WindowAdjustMessage) MarshalMux() ([]byte, error) { method UnmarshalMux (line 30) | func (msg *WindowAdjustMessage) UnmarshalMux(b []byte) error { FILE: golang/mux/api.go type Session (line 9) | type Session interface type Channel (line 23) | type Channel interface type Transport (line 44) | type Transport interface FILE: golang/mux/misc.go type waiter (line 5) | type waiter interface function Wait (line 11) | func Wait(sess Session) error { FILE: golang/session/channel.go type channelDirection (line 12) | type channelDirection constant channelInbound (line 15) | channelInbound channelDirection = iota constant channelOutbound (line 16) | channelOutbound type Channel (line 21) | type Channel struct method ID (line 65) | func (ch *Channel) ID() uint32 { method CloseWrite (line 71) | func (ch *Channel) CloseWrite() error { method Close (line 79) | func (ch *Channel) Close() error { method Write (line 85) | func (ch *Channel) Write(data []byte) (n int, err error) { method Read (line 114) | func (c *Channel) Read(data []byte) (n int, err error) { method send (line 132) | func (ch *Channel) send(msg interface{}) error { method adjustWindow (line 147) | func (c *Channel) adjustWindow(n uint32) error { method close (line 159) | func (c *Channel) close() { method responseMessageReceived (line 174) | func (ch *Channel) responseMessageReceived() error { method handle (line 181) | func (ch *Channel) handle(msg codec.Message) error { method handleData (line 230) | func (ch *Channel) handleData(msg *codec.DataMessage) error { FILE: golang/session/session.go constant minPacketLength (line 14) | minPacketLength = 9 constant maxPacketLength (line 15) | maxPacketLength = 1 << 31 constant channelMaxPacket (line 20) | channelMaxPacket = 1 << 15 constant channelWindowSize (line 22) | channelWindowSize = 64 * channelMaxPacket constant chanSize (line 27) | chanSize = 16 type Session (line 31) | type Session struct method Close (line 63) | func (s *Session) Close() error { method Wait (line 70) | func (s *Session) Wait() error { method Accept (line 80) | func (s *Session) Accept() (mux.Channel, error) { method Open (line 90) | func (s *Session) Open(ctx context.Context) (mux.Channel, error) { method newChannel (line 123) | func (s *Session) newChannel(direction channelDirection) *Channel { method loop (line 139) | func (s *Session) loop() { method onePacket (line 159) | func (s *Session) onePacket() error { method handleOpen (line 182) | func (s *Session) handleOpen(msg *codec.OpenMessage) error { function New (line 46) | func New(t mux.Transport) *Session { FILE: golang/session/session_test.go function fatal (line 15) | func fatal(err error, t *testing.T) { function TestQmux (line 22) | func TestQmux(t *testing.T) { function TestSessionOpenTimeout (line 86) | func TestSessionOpenTimeout(t *testing.T) { function TestSessionWait (line 109) | func TestSessionWait(t *testing.T) { FILE: golang/session/util.go function min (line 3) | func min(a uint32, b int) uint32 { FILE: golang/session/util_buffer.go type buffer (line 11) | type buffer struct method write (line 40) | func (b *buffer) write(buf []byte) { method eof (line 51) | func (b *buffer) eof() { method Read (line 60) | func (b *buffer) Read(buf []byte) (n int, err error) { type element (line 22) | type element struct function newBuffer (line 28) | func newBuffer() *buffer { FILE: golang/session/util_chanlist.go type chanList (line 6) | type chanList struct method add (line 16) | func (c *chanList) add(ch *Channel) uint32 { method getChan (line 30) | func (c *chanList) getChan(id uint32) *Channel { method remove (line 39) | func (c *chanList) remove(id uint32) { method dropAll (line 48) | func (c *chanList) dropAll() []*Channel { FILE: golang/session/util_window.go type window (line 10) | type window struct method add (line 19) | func (w *window) add(win uint32) bool { method close (line 40) | func (w *window) close() { method reserve (line 50) | func (w *window) reserve(win uint32) (uint32, error) { method waitWriterBlocked (line 72) | func (w *window) waitWriterBlocked() { FILE: golang/transport/dial_io.go function DialIO (line 11) | func DialIO(out io.WriteCloser, in io.ReadCloser) (mux.Session, error) { function DialStdio (line 15) | func DialStdio() (mux.Session, error) { FILE: golang/transport/dial_net.go function dialNet (line 10) | func dialNet(proto, addr string) (mux.Session, error) { function DialTCP (line 18) | func DialTCP(addr string) (mux.Session, error) { function DialUnix (line 22) | func DialUnix(addr string) (mux.Session, error) { FILE: golang/transport/dial_ws.go function DialWS (line 11) | func DialWS(addr string) (mux.Session, error) { FILE: golang/transport/listen.go type Listener (line 5) | type Listener interface FILE: golang/transport/listen_io.go type IOListener (line 11) | type IOListener struct method Accept (line 15) | func (l *IOListener) Accept() (mux.Session, error) { type ioduplex (line 19) | type ioduplex struct method Close (line 24) | func (d *ioduplex) Close() error { function ListenIO (line 34) | func ListenIO(out io.WriteCloser, in io.ReadCloser) (*IOListener, error) { function ListenStdio (line 40) | func ListenStdio() (*IOListener, error) { FILE: golang/transport/listen_net.go type NetListener (line 11) | type NetListener struct method Accept (line 18) | func (l *NetListener) Accept() (mux.Session, error) { method Close (line 33) | func (l *NetListener) Close() error { function listenNet (line 40) | func listenNet(proto, addr string) (*NetListener, error) { function ListenTCP (line 66) | func ListenTCP(addr string) (*NetListener, error) { function ListenUnix (line 70) | func ListenUnix(addr string) (*NetListener, error) { FILE: golang/transport/listen_ws.go function HandleWS (line 12) | func HandleWS(l *NetListener, ws *websocket.Conn) { function ListenWS (line 20) | func ListenWS(addr string) (*NetListener, error) { FILE: golang/transport/transport_test.go function fatal (line 14) | func fatal(err error, t *testing.T) { function testExchange (line 21) | func testExchange(t *testing.T, sess mux.Session) { function startListener (line 59) | func startListener(t *testing.T, l Listener) { function TestTCP (line 96) | func TestTCP(t *testing.T) { function TestUnix (line 106) | func TestUnix(t *testing.T) { function TestIO (line 118) | func TestIO(t *testing.T) { function TestWS (line 131) | func TestWS(t *testing.T) { FILE: typescript/api.ts type IConn (line 2) | interface IConn { type ISession (line 8) | interface ISession { type IChannel (line 14) | interface IChannel extends IConn { type IConnListener (line 19) | interface IConnListener { FILE: typescript/channel.ts class Channel (line 12) | class Channel { method constructor (line 26) | constructor(sess: internal.Session) { method ident (line 41) | ident(): number { method read (line 45) | async read(len: number): Promise { method reserveWindow (line 59) | reserveWindow(win: number): number { method addWindow (line 67) | addWindow(win: number) { method write (line 76) | write(buffer: Uint8Array): Promise { method closeWrite (line 120) | async closeWrite() { method close (line 130) | async close(): Promise { method shutdown (line 143) | shutdown(): void { method adjustWindow (line 150) | async adjustWindow(n: number) { method send (line 161) | send(msg: codec.ChannelMessage): Promise { method handle (line 171) | handle(msg: codec.ChannelMessage): void { method handleData (line 203) | handleData(msg: codec.DataMessage) { FILE: typescript/codec/decoder.ts class Decoder (line 8) | class Decoder { method constructor (line 12) | constructor(conn: api.IConn, debug: boolean = false) { method decode (line 17) | async decode(): Promise { function readPacket (line 30) | async function readPacket(conn: api.IConn): Promise { function Marshal (line 23) | function Marshal(obj: msg.AnyMessage): Uint8Array { FILE: typescript/codec/message.ts type Message (line 20) | interface Message { type OpenMessage (line 24) | interface OpenMessage { type OpenConfirmMessage (line 31) | interface OpenConfirmMessage { type OpenFailureMessage (line 39) | interface OpenFailureMessage { type WindowAdjustMessage (line 44) | interface WindowAdjustMessage { type DataMessage (line 50) | interface DataMessage { type EOFMessage (line 57) | interface EOFMessage { type CloseMessage (line 62) | interface CloseMessage { type ChannelMessage (line 67) | type ChannelMessage = ( type AnyMessage (line 75) | type AnyMessage = ChannelMessage | OpenMessage; FILE: typescript/session.ts class Session (line 14) | class Session implements api.ISession { method constructor (line 22) | constructor(conn: api.IConn, debug: boolean = false) { method open (line 31) | async open(): Promise { method accept (line 46) | accept(): Promise { method close (line 50) | async close(): Promise { method loop (line 61) | async loop() { method handleOpen (line 94) | async handleOpen(msg: codec.OpenMessage) { method newChannel (line 117) | newChannel(): internal.Channel { method getCh (line 125) | getCh(id: number): internal.Channel { method addCh (line 133) | addCh(ch: internal.Channel): number { method rmCh (line 144) | rmCh(id: number): void { FILE: typescript/session_test.ts function readAll (line 11) | async function readAll(conn: api.IConn): Promise { function startListener (line 22) | async function startListener(listener: api.IConnListener) { function testExchange (line 46) | async function testExchange(conn: api.IConn) { FILE: typescript/transport/deno/tcp.ts class Listener (line 5) | class Listener implements api.IConnListener { method constructor (line 8) | constructor(opts: Deno.ListenOptions) { method accept (line 12) | async accept(): Promise { method close (line 16) | close(): Promise { function Dial (line 22) | async function Dial(opts: Deno.ConnectOptions): Promise { class Conn (line 26) | class Conn implements api.IConn { method constructor (line 29) | constructor(conn: Deno.Conn) { method read (line 33) | async read(len: number): Promise { method write (line 53) | write(buffer: Uint8Array): Promise { method close (line 57) | close(): Promise { FILE: typescript/transport/deno/websocket.ts class Listener (line 10) | class Listener implements api.IConnListener { method constructor (line 14) | constructor(port: number) { method accept (line 22) | accept(): Promise { method close (line 26) | async close(): Promise { function Dial (line 32) | function Dial(endpoint: string): Promise { class Conn (line 42) | class Conn implements api.IConn { method constructor (line 47) | constructor(socket: WebSocketClient) { method read (line 67) | read(len: number): Promise { method write (line 71) | write(buffer: Uint8Array): Promise { method close (line 76) | async close(): Promise { FILE: typescript/transport/websocket.ts function Dial (line 8) | function Dial(addr: string, debug: boolean = false, onclose?: () => void... class Conn (line 17) | class Conn implements api.IConn { method constructor (line 24) | constructor(socket: WebSocket) { method read (line 46) | read(len: number): Promise { method write (line 65) | write(buffer: Uint8Array): Promise { method close (line 70) | close(): Promise { FILE: typescript/util.ts function concat (line 2) | function concat(list: Uint8Array[], totalLength: number): Uint8Array { class queue (line 14) | class queue { method constructor (line 19) | constructor() { method push (line 25) | push(obj: ValueType) { method shift (line 35) | shift(): Promise { method close (line 46) | close() { class ReadBuffer (line 55) | class ReadBuffer { method constructor (line 60) | constructor() { method read (line 66) | read(len: number): Promise { method write (line 93) | write(data: Uint8Array) { method eof (line 105) | eof() { method close (line 110) | close() { method flushReaders (line 115) | protected flushReaders() {