bufio

package
v0.0.0-...-775528f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 6, 2023 License: GPL-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Copy

func Copy(destination io.Writer, source io.Reader) (n int64, err error)

func CopyConn

func CopyConn(ctx context.Context, source net.Conn, destination net.Conn) error

func CopyConnContextList

func CopyConnContextList(contextList []context.Context, source net.Conn, destination net.Conn) error

func CopyDirect

func CopyDirect(source syscall.Conn, destination syscall.Conn, readCounters []N.CountFunc, writeCounters []N.CountFunc) (handed bool, n int64, err error)

func CopyExtended

func CopyExtended(originDestination io.Writer, destination N.ExtendedWriter, source N.ExtendedReader, readCounters []N.CountFunc, writeCounters []N.CountFunc) (n int64, err error)

func CopyExtendedBuffer

func CopyExtendedBuffer(originDestination io.Writer, destination N.ExtendedWriter, source N.ExtendedReader, buffer *buf.Buffer, readCounters []N.CountFunc, writeCounters []N.CountFunc) (n int64, err error)

func CopyExtendedWithPool

func CopyExtendedWithPool(originDestination io.Writer, destination N.ExtendedWriter, source N.ExtendedReader, readCounters []N.CountFunc, writeCounters []N.CountFunc) (n int64, err error)

func CopyExtendedWithSrcBuffer

func CopyExtendedWithSrcBuffer(originDestination io.Writer, destination N.ExtendedWriter, source N.ThreadSafeReader, readCounters []N.CountFunc, writeCounters []N.CountFunc) (n int64, err error)

func CopyPacket

func CopyPacket(destinationConn N.PacketWriter, source N.PacketReader) (n int64, err error)

func CopyPacketConn

func CopyPacketConn(ctx context.Context, source N.PacketConn, destination N.PacketConn) error

func CopyPacketConnContextList

func CopyPacketConnContextList(contextList []context.Context, source N.PacketConn, destination N.PacketConn) error

func CopyPacketWithPool

func CopyPacketWithPool(destinationConn N.PacketWriter, source N.PacketReader, readCounters []N.CountFunc, writeCounters []N.CountFunc) (n int64, err error)

func CopyPacketWithSrcBuffer

func CopyPacketWithSrcBuffer(destinationConn N.PacketWriter, source N.ThreadSafePacketReader, readCounters []N.CountFunc, writeCounters []N.CountFunc) (n int64, err error)

func CreatePacketReadWaiter

func CreatePacketReadWaiter(reader N.PacketReader) (N.PacketReadWaiter, bool)

func CreateReadWaiter

func CreateReadWaiter(reader io.Reader) (N.ReadWaiter, bool)

func CreateVectorisedPacketWriter

func CreateVectorisedPacketWriter(writer any) (N.VectorisedPacketWriter, bool)

func CreateVectorisedWriter

func CreateVectorisedWriter(writer any) (N.VectorisedWriter, bool)

func NewAppendConn

func NewAppendConn(conn N.ExtendedConn, reader N.ExtendedReader, writer N.ExtendedWriter) N.ExtendedConn

func NewExtendedConn

func NewExtendedConn(conn net.Conn) N.ExtendedConn

func NewExtendedReader

func NewExtendedReader(reader io.Reader) N.ExtendedReader

func NewExtendedWriter

func NewExtendedWriter(writer io.Writer) N.ExtendedWriter

func NewNetPacketConn

func NewNetPacketConn(conn N.PacketConn) N.NetPacketConn

func NewPacketConn

func NewPacketConn(conn net.PacketConn) N.NetPacketConn

func NewReadOnlyConn

func NewReadOnlyConn(reader io.Reader) net.Conn

func NewVectorisedWriter

func NewVectorisedWriter(writer io.Writer) N.VectorisedWriter

func NewWriteOnlyConn

func NewWriteOnlyConn(writer io.Writer) net.Conn

func ReadBuffer deprecated

func ReadBuffer(reader N.ExtendedReader, buffer *buf.Buffer) (n int, err error)

Deprecated: bad usage

func ReadPacket deprecated

func ReadPacket(reader N.PacketReader, buffer *buf.Buffer) (n int, addr net.Addr, err error)

Deprecated: bad usage

func Write

func Write(writer io.Writer, data []byte) (n int, err error)

func WriteBuffer

func WriteBuffer(writer N.ExtendedWriter, buffer *buf.Buffer) (n int, err error)

func WritePacket

func WritePacket(writer N.NetPacketWriter, data []byte, addr net.Addr) (n int, err error)

func WritePacketBuffer

func WritePacketBuffer(writer N.PacketWriter, buffer *buf.Buffer, destination M.Socksaddr) (n int, err error)

func WritePacketWithPool

func WritePacketWithPool(destinationConn N.PacketWriter, packetBuffers []*N.PacketBuffer) (n int64, err error)

func WriteVectorised

func WriteVectorised(writer N.VectorisedWriter, data [][]byte) (n int, err error)

func WriteVectorisedPacket

func WriteVectorisedPacket(writer N.VectorisedPacketWriter, data [][]byte, destination M.Socksaddr) (n int, err error)

Types

type AddrConn

type AddrConn struct {
	net.Conn
	M.Metadata
}

func (*AddrConn) LocalAddr

func (c *AddrConn) LocalAddr() net.Addr

func (*AddrConn) ReadFrom

func (c *AddrConn) ReadFrom(r io.Reader) (n int64, err error)

func (*AddrConn) ReaderReplaceable

func (c *AddrConn) ReaderReplaceable() bool

func (*AddrConn) RemoteAddr

func (c *AddrConn) RemoteAddr() net.Addr

func (*AddrConn) Upstream

func (c *AddrConn) Upstream() any

func (*AddrConn) WriteTo

func (c *AddrConn) WriteTo(w io.Writer) (n int64, err error)

func (*AddrConn) WriterReplaceable

func (c *AddrConn) WriterReplaceable() bool

type BindPacketConn

type BindPacketConn struct {
	N.NetPacketConn
	Addr net.Addr
}

func NewBindPacketConn

func NewBindPacketConn(conn net.PacketConn, addr net.Addr) *BindPacketConn

func (*BindPacketConn) Read

func (c *BindPacketConn) Read(b []byte) (n int, err error)

func (*BindPacketConn) RemoteAddr

func (c *BindPacketConn) RemoteAddr() net.Addr

func (*BindPacketConn) Upstream

func (c *BindPacketConn) Upstream() any

func (*BindPacketConn) Write

func (c *BindPacketConn) Write(b []byte) (n int, err error)

type BufferedVectorisedWriter

type BufferedVectorisedWriter struct {
	// contains filtered or unexported fields
}

func (*BufferedVectorisedWriter) Upstream

func (w *BufferedVectorisedWriter) Upstream() any

func (*BufferedVectorisedWriter) WriteVectorised

func (w *BufferedVectorisedWriter) WriteVectorised(buffers []*buf.Buffer) error

type BufferedWriter

type BufferedWriter struct {
	// contains filtered or unexported fields
}

func NewBufferedWriter

func NewBufferedWriter(upstream io.Writer, buffer *buf.Buffer) *BufferedWriter

func (*BufferedWriter) Fallthrough

func (w *BufferedWriter) Fallthrough() error

func (*BufferedWriter) Write

func (w *BufferedWriter) Write(p []byte) (n int, err error)

func (*BufferedWriter) WriterReplaceable

func (w *BufferedWriter) WriterReplaceable() bool

type CachedConn

type CachedConn struct {
	net.Conn
	// contains filtered or unexported fields
}

func NewCachedConn

func NewCachedConn(conn net.Conn, buffer *buf.Buffer) *CachedConn

func (*CachedConn) Close

func (c *CachedConn) Close() error

func (*CachedConn) Read

func (c *CachedConn) Read(p []byte) (n int, err error)

func (*CachedConn) ReadCached

func (c *CachedConn) ReadCached() *buf.Buffer

func (*CachedConn) ReadFrom

func (c *CachedConn) ReadFrom(r io.Reader) (n int64, err error)

func (*CachedConn) ReaderReplaceable

func (c *CachedConn) ReaderReplaceable() bool

func (*CachedConn) SetReadDeadline

func (c *CachedConn) SetReadDeadline(t time.Time) error

func (*CachedConn) Upstream

func (c *CachedConn) Upstream() any

func (*CachedConn) WriteTo

func (c *CachedConn) WriteTo(w io.Writer) (n int64, err error)

func (*CachedConn) WriterReplaceable

func (c *CachedConn) WriterReplaceable() bool

type CachedPacketConn

type CachedPacketConn struct {
	N.PacketConn
	// contains filtered or unexported fields
}

func NewCachedPacketConn

func NewCachedPacketConn(conn N.PacketConn, buffer *buf.Buffer, destination M.Socksaddr) *CachedPacketConn

func (*CachedPacketConn) Close

func (c *CachedPacketConn) Close() error

func (*CachedPacketConn) ReadCachedPacket

func (c *CachedPacketConn) ReadCachedPacket() *N.PacketBuffer

func (*CachedPacketConn) ReadPacket

func (c *CachedPacketConn) ReadPacket(buffer *buf.Buffer) (destination M.Socksaddr, err error)

func (*CachedPacketConn) ReaderReplaceable

func (c *CachedPacketConn) ReaderReplaceable() bool

func (*CachedPacketConn) Upstream

func (c *CachedPacketConn) Upstream() any

func (*CachedPacketConn) WriterReplaceable

func (c *CachedPacketConn) WriterReplaceable() bool

type CachedReader

type CachedReader struct {
	// contains filtered or unexported fields
}

func NewCachedReader

func NewCachedReader(upstream io.Reader, buffer *buf.Buffer) *CachedReader

func (*CachedReader) Close

func (r *CachedReader) Close() error

func (*CachedReader) Read

func (r *CachedReader) Read(p []byte) (n int, err error)

func (*CachedReader) ReadCached

func (r *CachedReader) ReadCached() *buf.Buffer

func (*CachedReader) ReaderReplaceable

func (r *CachedReader) ReaderReplaceable() bool

func (*CachedReader) Upstream

func (r *CachedReader) Upstream() any

func (*CachedReader) WriteTo

func (r *CachedReader) WriteTo(w io.Writer) (n int64, err error)

type ChunkReader

type ChunkReader struct {
	// contains filtered or unexported fields
}

func NewChunkReader

func NewChunkReader(upstream io.Reader, maxChunkSize int) *ChunkReader

func (*ChunkReader) MTU

func (c *ChunkReader) MTU() int

func (*ChunkReader) Read

func (c *ChunkReader) Read(p []byte) (n int, err error)

func (*ChunkReader) ReadBuffer

func (c *ChunkReader) ReadBuffer(buffer *buf.Buffer) error

func (*ChunkReader) ReadByte

func (c *ChunkReader) ReadByte() (byte, error)

func (*ChunkReader) ReadChunk

func (c *ChunkReader) ReadChunk() (*buf.Buffer, error)

type ChunkWriter

type ChunkWriter struct {
	// contains filtered or unexported fields
}

func NewChunkWriter

func NewChunkWriter(writer io.Writer, maxChunkSize int) *ChunkWriter

func (*ChunkWriter) MTU

func (w *ChunkWriter) MTU() int

func (*ChunkWriter) Upstream

func (w *ChunkWriter) Upstream() any

func (*ChunkWriter) Write

func (w *ChunkWriter) Write(p []byte) (n int, err error)

func (*ChunkWriter) WriteBuffer

func (w *ChunkWriter) WriteBuffer(buffer *buf.Buffer) error

type CounterConn

type CounterConn struct {
	N.ExtendedConn
	// contains filtered or unexported fields
}

func NewCounterConn

func NewCounterConn(conn net.Conn, readCounter []N.CountFunc, writeCounter []N.CountFunc) *CounterConn

func NewInt64CounterConn

func NewInt64CounterConn(conn net.Conn, readCounter []*atomic.Int64, writeCounter []*atomic.Int64) *CounterConn

func (*CounterConn) Read

func (c *CounterConn) Read(p []byte) (n int, err error)

func (*CounterConn) ReadBuffer

func (c *CounterConn) ReadBuffer(buffer *buf.Buffer) error

func (*CounterConn) UnwrapReader

func (c *CounterConn) UnwrapReader() (io.Reader, []N.CountFunc)

func (*CounterConn) UnwrapWriter

func (c *CounterConn) UnwrapWriter() (io.Writer, []N.CountFunc)

func (*CounterConn) Upstream

func (c *CounterConn) Upstream() any

func (*CounterConn) Write

func (c *CounterConn) Write(p []byte) (n int, err error)

func (*CounterConn) WriteBuffer

func (c *CounterConn) WriteBuffer(buffer *buf.Buffer) error

type CounterPacketConn

type CounterPacketConn struct {
	N.PacketConn
	// contains filtered or unexported fields
}

func NewCounterPacketConn

func NewCounterPacketConn(conn N.PacketConn, readCounter []N.CountFunc, writeCounter []N.CountFunc) *CounterPacketConn

func NewInt64CounterPacketConn

func NewInt64CounterPacketConn(conn N.PacketConn, readCounter []*atomic.Int64, writeCounter []*atomic.Int64) *CounterPacketConn

func (*CounterPacketConn) ReadPacket

func (c *CounterPacketConn) ReadPacket(buffer *buf.Buffer) (destination M.Socksaddr, err error)

func (*CounterPacketConn) UnwrapPacketReader

func (c *CounterPacketConn) UnwrapPacketReader() (N.PacketReader, []N.CountFunc)

func (*CounterPacketConn) UnwrapPacketWriter

func (c *CounterPacketConn) UnwrapPacketWriter() (N.PacketWriter, []N.CountFunc)

func (*CounterPacketConn) Upstream

func (c *CounterPacketConn) Upstream() any

func (*CounterPacketConn) WritePacket

func (c *CounterPacketConn) WritePacket(buffer *buf.Buffer, destination M.Socksaddr) error

type ExtendedConnWrapper

type ExtendedConnWrapper struct {
	net.Conn
	// contains filtered or unexported fields
}

func (*ExtendedConnWrapper) ReadBuffer

func (w *ExtendedConnWrapper) ReadBuffer(buffer *buf.Buffer) error

func (*ExtendedConnWrapper) ReadFrom

func (w *ExtendedConnWrapper) ReadFrom(r io.Reader) (n int64, err error)

func (*ExtendedConnWrapper) ReaderReplaceable

func (w *ExtendedConnWrapper) ReaderReplaceable() bool

func (*ExtendedConnWrapper) Upstream

func (w *ExtendedConnWrapper) Upstream() any

func (*ExtendedConnWrapper) UpstreamReader

func (w *ExtendedConnWrapper) UpstreamReader() any

func (*ExtendedConnWrapper) UpstreamWriter

func (w *ExtendedConnWrapper) UpstreamWriter() any

func (*ExtendedConnWrapper) WriteBuffer

func (w *ExtendedConnWrapper) WriteBuffer(buffer *buf.Buffer) error

func (*ExtendedConnWrapper) WriteTo

func (r *ExtendedConnWrapper) WriteTo(w io.Writer) (n int64, err error)

func (*ExtendedConnWrapper) WriterReplaceable

func (w *ExtendedConnWrapper) WriterReplaceable() bool

type ExtendedPacketConn

type ExtendedPacketConn struct {
	net.PacketConn
}

func (*ExtendedPacketConn) ReadPacket

func (w *ExtendedPacketConn) ReadPacket(buffer *buf.Buffer) (M.Socksaddr, error)

func (*ExtendedPacketConn) Upstream

func (w *ExtendedPacketConn) Upstream() any

func (*ExtendedPacketConn) WritePacket

func (w *ExtendedPacketConn) WritePacket(buffer *buf.Buffer, destination M.Socksaddr) error

type ExtendedReaderWrapper

type ExtendedReaderWrapper struct {
	io.Reader
}

func (*ExtendedReaderWrapper) ReadBuffer

func (r *ExtendedReaderWrapper) ReadBuffer(buffer *buf.Buffer) error

func (*ExtendedReaderWrapper) ReaderReplaceable

func (r *ExtendedReaderWrapper) ReaderReplaceable() bool

func (*ExtendedReaderWrapper) Upstream

func (r *ExtendedReaderWrapper) Upstream() any

func (*ExtendedReaderWrapper) WriteTo

func (r *ExtendedReaderWrapper) WriteTo(w io.Writer) (n int64, err error)

type ExtendedUDPConn

type ExtendedUDPConn struct {
	*net.UDPConn
}

func (*ExtendedUDPConn) ReadPacket

func (w *ExtendedUDPConn) ReadPacket(buffer *buf.Buffer) (M.Socksaddr, error)

func (*ExtendedUDPConn) Upstream

func (w *ExtendedUDPConn) Upstream() any

func (*ExtendedUDPConn) WritePacket

func (w *ExtendedUDPConn) WritePacket(buffer *buf.Buffer, destination M.Socksaddr) error

type ExtendedWriterWrapper

type ExtendedWriterWrapper struct {
	io.Writer
}

func (*ExtendedWriterWrapper) ReadFrom

func (w *ExtendedWriterWrapper) ReadFrom(r io.Reader) (n int64, err error)

func (*ExtendedWriterWrapper) Upstream

func (w *ExtendedWriterWrapper) Upstream() any

func (*ExtendedWriterWrapper) WriteBuffer

func (w *ExtendedWriterWrapper) WriteBuffer(buffer *buf.Buffer) error

func (*ExtendedWriterWrapper) WriterReplaceable

func (w *ExtendedWriterWrapper) WriterReplaceable() bool

type FallbackPacketConn

type FallbackPacketConn struct {
	N.PacketConn
}

func (*FallbackPacketConn) ReadFrom

func (c *FallbackPacketConn) ReadFrom(p []byte) (n int, addr net.Addr, err error)

func (*FallbackPacketConn) ReaderReplaceable

func (c *FallbackPacketConn) ReaderReplaceable() bool

func (*FallbackPacketConn) Upstream

func (c *FallbackPacketConn) Upstream() any

func (*FallbackPacketConn) WriteTo

func (c *FallbackPacketConn) WriteTo(p []byte, addr net.Addr) (n int, err error)

func (*FallbackPacketConn) WriterReplaceable

func (c *FallbackPacketConn) WriterReplaceable() bool

type NATPacketConn

type NATPacketConn struct {
	N.NetPacketConn
	// contains filtered or unexported fields
}

func NewNATPacketConn

func NewNATPacketConn(conn N.NetPacketConn, origin M.Socksaddr, destination M.Socksaddr) *NATPacketConn

func (*NATPacketConn) ReadFrom

func (c *NATPacketConn) ReadFrom(p []byte) (n int, addr net.Addr, err error)

func (*NATPacketConn) ReadPacket

func (c *NATPacketConn) ReadPacket(buffer *buf.Buffer) (destination M.Socksaddr, err error)

func (*NATPacketConn) UpdateDestination

func (c *NATPacketConn) UpdateDestination(destinationAddress netip.Addr)

func (*NATPacketConn) Upstream

func (c *NATPacketConn) Upstream() any

func (*NATPacketConn) WritePacket

func (c *NATPacketConn) WritePacket(buffer *buf.Buffer, destination M.Socksaddr) error

func (*NATPacketConn) WriteTo

func (c *NATPacketConn) WriteTo(p []byte, addr net.Addr) (n int, err error)

type NetVectorisedWriterWrapper

type NetVectorisedWriterWrapper struct {
	// contains filtered or unexported fields
}

func (*NetVectorisedWriterWrapper) Upstream

func (w *NetVectorisedWriterWrapper) Upstream() any

func (*NetVectorisedWriterWrapper) WriteVectorised

func (w *NetVectorisedWriterWrapper) WriteVectorised(buffers []*buf.Buffer) error

func (*NetVectorisedWriterWrapper) WriterReplaceable

func (w *NetVectorisedWriterWrapper) WriterReplaceable() bool

type RaceWriter

type RaceWriter struct {
	// contains filtered or unexported fields
}

func NewRaceWriter

func NewRaceWriter(writer io.Writer) *RaceWriter

func (*RaceWriter) Upstream

func (w *RaceWriter) Upstream() any

func (*RaceWriter) Write

func (w *RaceWriter) Write(p []byte) (n int, err error)

func (*RaceWriter) WriteBuffer

func (w *RaceWriter) WriteBuffer(buffer *buf.Buffer) error

type ReadOnlyConn

type ReadOnlyConn struct {
	// contains filtered or unexported fields
}

func (*ReadOnlyConn) Close

func (c *ReadOnlyConn) Close() error

func (*ReadOnlyConn) LocalAddr

func (c *ReadOnlyConn) LocalAddr() net.Addr

func (*ReadOnlyConn) Read

func (c *ReadOnlyConn) Read(b []byte) (n int, err error)

func (*ReadOnlyConn) RemoteAddr

func (c *ReadOnlyConn) RemoteAddr() net.Addr

func (*ReadOnlyConn) SetDeadline

func (c *ReadOnlyConn) SetDeadline(t time.Time) error

func (*ReadOnlyConn) SetReadDeadline

func (c *ReadOnlyConn) SetReadDeadline(t time.Time) error

func (*ReadOnlyConn) SetWriteDeadline

func (c *ReadOnlyConn) SetWriteDeadline(t time.Time) error

func (*ReadOnlyConn) Upstream

func (c *ReadOnlyConn) Upstream() any

func (*ReadOnlyConn) Write

func (c *ReadOnlyConn) Write(b []byte) (n int, err error)

type SyscallVectorisedPacketWriter

type SyscallVectorisedPacketWriter struct {
	// contains filtered or unexported fields
}

func (*SyscallVectorisedPacketWriter) Upstream

func (w *SyscallVectorisedPacketWriter) Upstream() any

func (*SyscallVectorisedPacketWriter) WriteVectorisedPacket

func (w *SyscallVectorisedPacketWriter) WriteVectorisedPacket(buffers []*buf.Buffer, destination M.Socksaddr) error

type SyscallVectorisedWriter

type SyscallVectorisedWriter struct {
	// contains filtered or unexported fields
}

func (*SyscallVectorisedWriter) Upstream

func (w *SyscallVectorisedWriter) Upstream() any

func (*SyscallVectorisedWriter) WriteVectorised

func (w *SyscallVectorisedWriter) WriteVectorised(buffers []*buf.Buffer) error

func (*SyscallVectorisedWriter) WriterReplaceable

func (w *SyscallVectorisedWriter) WriterReplaceable() bool

type UnbindPacketConn

type UnbindPacketConn struct {
	N.ExtendedConn
	Addr M.Socksaddr
}

func NewUnbindPacketConn

func NewUnbindPacketConn(conn net.Conn) *UnbindPacketConn

func (*UnbindPacketConn) ReadFrom

func (c *UnbindPacketConn) ReadFrom(p []byte) (n int, addr net.Addr, err error)

func (*UnbindPacketConn) ReadPacket

func (c *UnbindPacketConn) ReadPacket(buffer *buf.Buffer) (destination M.Socksaddr, err error)

func (*UnbindPacketConn) Upstream

func (c *UnbindPacketConn) Upstream() any

func (*UnbindPacketConn) WritePacket

func (c *UnbindPacketConn) WritePacket(buffer *buf.Buffer, _ M.Socksaddr) error

func (*UnbindPacketConn) WriteTo

func (c *UnbindPacketConn) WriteTo(p []byte, _ net.Addr) (n int, err error)

type UnbindVectorisedPacketWriter

type UnbindVectorisedPacketWriter struct {
	N.VectorisedWriter
}

func (*UnbindVectorisedPacketWriter) WriteVectorisedPacket

func (w *UnbindVectorisedPacketWriter) WriteVectorisedPacket(buffers []*buf.Buffer, _ M.Socksaddr) error

type WriteOnlyConn

type WriteOnlyConn struct {
	// contains filtered or unexported fields
}

func (*WriteOnlyConn) Close

func (c *WriteOnlyConn) Close() error

func (*WriteOnlyConn) LocalAddr

func (c *WriteOnlyConn) LocalAddr() net.Addr

func (*WriteOnlyConn) Read

func (c *WriteOnlyConn) Read(b []byte) (n int, err error)

func (*WriteOnlyConn) RemoteAddr

func (c *WriteOnlyConn) RemoteAddr() net.Addr

func (*WriteOnlyConn) SetDeadline

func (c *WriteOnlyConn) SetDeadline(t time.Time) error

func (*WriteOnlyConn) SetReadDeadline

func (c *WriteOnlyConn) SetReadDeadline(t time.Time) error

func (*WriteOnlyConn) SetWriteDeadline

func (c *WriteOnlyConn) SetWriteDeadline(t time.Time) error

func (*WriteOnlyConn) Upstream

func (c *WriteOnlyConn) Upstream() any

func (*WriteOnlyConn) Write

func (c *WriteOnlyConn) Write(b []byte) (n int, err error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL