You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tty-share/testing/wrapped_double_net_conn.go

38 lines
628 B
Go

package testing
import (
"net"
"sync"
"github.com/elisescu/tty-share/common"
)
func NewDoubleNetConn(debug bool) (client net.Conn, server net.Conn) {
var wg sync.WaitGroup
wg.Add(1)
var err error
listener, err := net.Listen("tcp", "localhost:0")
defer listener.Close()
if err != nil {
panic(err.Error())
}
go func() {
server, err = listener.Accept()
if err != nil {
panic(err.Error())
}
wg.Done()
}()
client, err = net.Dial("tcp", listener.Addr().String())
if err != nil {
panic(err.Error())
}
wg.Wait()
return common.NewWrappedConn(client, debug), common.NewWrappedConn(server, debug)
}