mirror of
https://github.com/logos-messaging/go-multiaddr.git
synced 2026-01-08 07:53:08 +00:00
Make PacketConn more idiomatic and direct
This commit is contained in:
parent
6040dff26d
commit
9feee519c3
29
net.go
29
net.go
@ -60,6 +60,8 @@ type maConn struct {
|
|||||||
raddr ma.Multiaddr
|
raddr ma.Multiaddr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _ Conn = (*maConn)(nil)
|
||||||
|
|
||||||
// LocalMultiaddr returns the local address associated with
|
// LocalMultiaddr returns the local address associated with
|
||||||
// this connection
|
// this connection
|
||||||
func (c *maConn) LocalMultiaddr() ma.Multiaddr {
|
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
|
// A PacketConn is a generic packet oriented network connection which uses an
|
||||||
// underlying net.PacketConn, wrapped with the locally bound Multiaddr.
|
// underlying net.PacketConn, wrapped with the locally bound Multiaddr.
|
||||||
type PacketConn interface {
|
type PacketConn interface {
|
||||||
Connection() net.PacketConn
|
net.PacketConn
|
||||||
|
|
||||||
Multiaddr() ma.Multiaddr
|
LocalMultiaddr() ma.Multiaddr
|
||||||
|
|
||||||
ReadFrom(b []byte) (int, ma.Multiaddr, error)
|
ReadFromMultiaddr(b []byte) (int, ma.Multiaddr, error)
|
||||||
WriteTo(b []byte, maddr ma.Multiaddr) (int, error)
|
WriteToMultiaddr(b []byte, maddr ma.Multiaddr) (int, error)
|
||||||
|
|
||||||
Close() error
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// maPacketConn implements PacketConn
|
// maPacketConn implements PacketConn
|
||||||
@ -267,28 +267,25 @@ type maPacketConn struct {
|
|||||||
laddr ma.Multiaddr
|
laddr ma.Multiaddr
|
||||||
}
|
}
|
||||||
|
|
||||||
// Connection returns the embedded net.PacketConn.
|
var _ PacketConn = (*maPacketConn)(nil)
|
||||||
func (l *maPacketConn) Connection() net.PacketConn {
|
|
||||||
return l.PacketConn
|
|
||||||
}
|
|
||||||
|
|
||||||
// Multiaddr returns the bound local Multiaddr.
|
// LocalMultiaddr returns the bound local Multiaddr.
|
||||||
func (l *maPacketConn) Multiaddr() ma.Multiaddr {
|
func (l *maPacketConn) LocalMultiaddr() ma.Multiaddr {
|
||||||
return l.laddr
|
return l.laddr
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *maPacketConn) ReadFrom(b []byte) (int, ma.Multiaddr, error) {
|
func (l *maPacketConn) ReadFromMultiaddr(b []byte) (int, ma.Multiaddr, error) {
|
||||||
n, addr, err := l.PacketConn.ReadFrom(b)
|
n, addr, err := l.ReadFrom(b)
|
||||||
maddr, _ := FromNetAddr(addr)
|
maddr, _ := FromNetAddr(addr)
|
||||||
return n, maddr, err
|
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)
|
addr, err := ToNetAddr(maddr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
return l.PacketConn.WriteTo(b, addr)
|
return l.WriteTo(b, addr)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListenPacket announces on the local network address laddr.
|
// ListenPacket announces on the local network address laddr.
|
||||||
|
|||||||
@ -255,8 +255,8 @@ func TestListenPacketAndDial(t *testing.T) {
|
|||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
if !pc.Multiaddr().Equal(maddr) {
|
if !pc.LocalMultiaddr().Equal(maddr) {
|
||||||
t.Fatal("connection multiaddr not equal:", maddr, pc.Multiaddr())
|
t.Fatal("connection multiaddr not equal:", maddr, pc.LocalMultiaddr())
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer := make([]byte, 1024)
|
buffer := make([]byte, 1024)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user