mirror of
https://github.com/MetaCubeX/mihomo.git
synced 2024-11-16 19:56:51 +08:00
42 lines
733 B
Go
42 lines
733 B
Go
|
package mixed
|
||
|
|
||
|
import (
|
||
|
"bufio"
|
||
|
"net"
|
||
|
)
|
||
|
|
||
|
type BufferedConn struct {
|
||
|
r *bufio.Reader
|
||
|
net.Conn
|
||
|
}
|
||
|
|
||
|
func NewBufferedConn(c net.Conn) *BufferedConn {
|
||
|
return &BufferedConn{bufio.NewReader(c), c}
|
||
|
}
|
||
|
|
||
|
// Reader returns the internal bufio.Reader.
|
||
|
func (c *BufferedConn) Reader() *bufio.Reader {
|
||
|
return c.r
|
||
|
}
|
||
|
|
||
|
// Peek returns the next n bytes without advancing the reader.
|
||
|
func (c *BufferedConn) Peek(n int) ([]byte, error) {
|
||
|
return c.r.Peek(n)
|
||
|
}
|
||
|
|
||
|
func (c *BufferedConn) Read(p []byte) (int, error) {
|
||
|
return c.r.Read(p)
|
||
|
}
|
||
|
|
||
|
func (c *BufferedConn) ReadByte() (byte, error) {
|
||
|
return c.r.ReadByte()
|
||
|
}
|
||
|
|
||
|
func (c *BufferedConn) UnreadByte() error {
|
||
|
return c.r.UnreadByte()
|
||
|
}
|
||
|
|
||
|
func (c *BufferedConn) Buffered() int {
|
||
|
return c.r.Buffered()
|
||
|
}
|