converge/pkg/support/iowrappers/readwriteaddrcloser.go
Erik Brakkee 7d25f39f5b test for connecting clients and bidirectional communication to agent.
Required lots of rework since the GOBChannel appeared to be reading
ahead of the data it actually needed. Now using more low-level IO
to send the clientId over to the agent instead.
2024-08-22 16:16:02 +02:00

41 lines
716 B
Go

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
}