From 9feee519c3b41d3e89fcfa003dc8d0f7fa3e19de Mon Sep 17 00:00:00 2001 From: Lars Gierth Date: Sat, 3 Mar 2018 21:19:40 -0500 Subject: [PATCH] Make PacketConn more idiomatic and direct --- net.go | 29 +++++++++++++---------------- net_test.go | 4 ++-- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/net.go b/net.go index 9ee4ade..e08d1ca 100644 --- a/net.go +++ b/net.go @@ -60,6 +60,8 @@ type maConn struct { raddr ma.Multiaddr } +var _ Conn = (*maConn)(nil) + // LocalMultiaddr returns the local address associated with // this connection func (c *maConn) LocalMultiaddr() ma.Multiaddr { @@ -251,14 +253,12 @@ func WrapNetListener(nl net.Listener) (Listener, error) { // A PacketConn is a generic packet oriented network connection which uses an // underlying net.PacketConn, wrapped with the locally bound Multiaddr. type PacketConn interface { - Connection() net.PacketConn + net.PacketConn - Multiaddr() ma.Multiaddr + LocalMultiaddr() ma.Multiaddr - ReadFrom(b []byte) (int, ma.Multiaddr, error) - WriteTo(b []byte, maddr ma.Multiaddr) (int, error) - - Close() error + ReadFromMultiaddr(b []byte) (int, ma.Multiaddr, error) + WriteToMultiaddr(b []byte, maddr ma.Multiaddr) (int, error) } // maPacketConn implements PacketConn @@ -267,28 +267,25 @@ type maPacketConn struct { laddr ma.Multiaddr } -// Connection returns the embedded net.PacketConn. -func (l *maPacketConn) Connection() net.PacketConn { - return l.PacketConn -} +var _ PacketConn = (*maPacketConn)(nil) -// Multiaddr returns the bound local Multiaddr. -func (l *maPacketConn) Multiaddr() ma.Multiaddr { +// LocalMultiaddr returns the bound local Multiaddr. +func (l *maPacketConn) LocalMultiaddr() ma.Multiaddr { return l.laddr } -func (l *maPacketConn) ReadFrom(b []byte) (int, ma.Multiaddr, error) { - n, addr, err := l.PacketConn.ReadFrom(b) +func (l *maPacketConn) ReadFromMultiaddr(b []byte) (int, ma.Multiaddr, error) { + n, addr, err := l.ReadFrom(b) maddr, _ := FromNetAddr(addr) return n, maddr, err } -func (l *maPacketConn) WriteTo(b []byte, maddr ma.Multiaddr) (int, error) { +func (l *maPacketConn) WriteToMultiaddr(b []byte, maddr ma.Multiaddr) (int, error) { addr, err := ToNetAddr(maddr) if err != nil { return 0, err } - return l.PacketConn.WriteTo(b, addr) + return l.WriteTo(b, addr) } // ListenPacket announces on the local network address laddr. diff --git a/net_test.go b/net_test.go index 44bdfd7..72a5433 100644 --- a/net_test.go +++ b/net_test.go @@ -255,8 +255,8 @@ func TestListenPacketAndDial(t *testing.T) { wg.Add(1) go func() { - if !pc.Multiaddr().Equal(maddr) { - t.Fatal("connection multiaddr not equal:", maddr, pc.Multiaddr()) + if !pc.LocalMultiaddr().Equal(maddr) { + t.Fatal("connection multiaddr not equal:", maddr, pc.LocalMultiaddr()) } buffer := make([]byte, 1024)