converge/pkg/support/iowrappers/readwriteaddrcloser.go
Erik Brakkee 28b2545163 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-09-08 11:16:49 +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
}