12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package gateway
- import (
- "net"
- "time"
- )
- type Conn struct {
- buf []byte
- conn net.Conn
- }
- func (c *Conn) Read(b []byte) (n int, err error) {
- var m int
- if len(c.buf) > 0 {
- if len(b) > len(c.buf) {
- m = copy(b[:], c.buf[:])
- c.buf = c.buf[m:]
- }
- }
- n, err = c.conn.Read(b[m:])
- n += m
- return
- }
- func (c *Conn) Write(b []byte) (n int, err error) {
- return c.conn.Write(b)
- }
- func (c *Conn) Close() error {
- return c.conn.Close()
- }
- func (c *Conn) LocalAddr() net.Addr {
- return c.conn.LocalAddr()
- }
- func (c *Conn) RemoteAddr() net.Addr {
- return c.conn.RemoteAddr()
- }
- func (c *Conn) SetDeadline(t time.Time) error {
- return c.conn.SetDeadline(t)
- }
- func (c *Conn) SetReadDeadline(t time.Time) error {
- return c.conn.SetReadDeadline(t)
- }
- func (c *Conn) SetWriteDeadline(t time.Time) error {
- return c.conn.SetWriteDeadline(t)
- }
- func wrapConn(c net.Conn, buf []byte) net.Conn {
- conn := &Conn{conn: c, buf: buf}
- if buf != nil {
- conn.buf = make([]byte, len(buf))
- copy(conn.buf, buf)
- }
- return conn
- }
|