github.com/ipfans/trojan-go@v0.11.0/tunnel/shadowsocks/conn.go (about) 1 package shadowsocks 2 3 import ( 4 "net" 5 6 "github.com/ipfans/trojan-go/tunnel" 7 ) 8 9 type Conn struct { 10 aeadConn net.Conn 11 tunnel.Conn 12 } 13 14 func (c *Conn) Read(p []byte) (n int, err error) { 15 return c.aeadConn.Read(p) 16 } 17 18 func (c *Conn) Write(p []byte) (n int, err error) { 19 return c.aeadConn.Write(p) 20 } 21 22 func (c *Conn) Close() error { 23 c.Conn.Close() 24 return c.aeadConn.Close() 25 } 26 27 func (c *Conn) Metadata() *tunnel.Metadata { 28 return c.Conn.Metadata() 29 }