package iowrappers import ( "io" "net" ) type ReadWriteAddrCloser interface { io.ReadWriteCloser RemoteAddr() net.Addr } type SimpleReadWriteAddrCloser struct { rw io.ReadWriteCloser addr net.Addr } func NewSimpleReadWriteAddrCloser(rw io.ReadWriteCloser, addr net.Addr) *SimpleReadWriteAddrCloser { return &SimpleReadWriteAddrCloser{ rw: rw, addr: addr, } } func (s *SimpleReadWriteAddrCloser) Read(p []byte) (int, error) { return s.rw.Read(p) } func (s *SimpleReadWriteAddrCloser) Write(p []byte) (int, error) { return s.rw.Write(p) } func (s *SimpleReadWriteAddrCloser) Close() error { return s.rw.Close() } func (s *SimpleReadWriteAddrCloser) RemoteAddr() net.Addr { return s.addr }