From f9239dcf8db753426a8b6e4b2caabceae161b8f1 Mon Sep 17 00:00:00 2001 From: Michael Quigley Date: Tue, 17 Mar 2020 15:42:06 -0400 Subject: [PATCH] Implemented 'transwarp.Connection.ReadPeer'. (#44) --- transwarp/connection.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/transwarp/connection.go b/transwarp/connection.go index c24db6cd8..942074b0a 100644 --- a/transwarp/connection.go +++ b/transwarp/connection.go @@ -36,6 +36,15 @@ func (self *connection) Reader() io.Reader { return self.socket } +func (self *connection) ReadPeer(p []byte) (int, transport.Address, error) { + n, peer, err := self.socket.ReadFromUDP(p) + var addr transport.Address + if peer != nil { + addr = &address{hostname: peer.IP.String(), port: uint16(peer.Port)} + } + return n, addr, err +} + func (self *connection) Writer() io.Writer { return self.socket } @@ -56,7 +65,7 @@ func (self *connection) Close() error { return self.socket.Close() } -func newConnection(detail *transport.ConnectionDetail, socket net.Conn) *connection { +func newConnection(detail *transport.ConnectionDetail, socket *net.UDPConn) *connection { return &connection{ detail: detail, socket: socket, @@ -66,7 +75,7 @@ func newConnection(detail *transport.ConnectionDetail, socket net.Conn) *connect type connection struct { detail *transport.ConnectionDetail - socket net.Conn + socket *net.UDPConn buffer []byte copy []byte }