@@ -12,11 +12,14 @@ import (
12
12
13
13
var errInvalidEndpoint = errors .New ("invalid endpoint type" )
14
14
15
- type UDPEndpoint struct {
16
- * net.UDPAddr
15
+ type UDPEndpoint net.UDPAddr
16
+
17
+ func (ep * UDPEndpoint ) String () string {
18
+ addr := (* net .UDPAddr )(ep )
19
+ return addr .String ()
17
20
}
18
21
19
- func (ep * UDPEndpoint ) Equal (o Endpoint ) bool {
22
+ func (ep UDPEndpoint ) Equal (o Endpoint ) bool {
20
23
ep2 , ok := o .(* UDPEndpoint )
21
24
if ! ok {
22
25
return false
@@ -78,7 +81,7 @@ func (s *UDPConn) Send(pl payload, spkt spk, ep Endpoint) error {
78
81
e .typ = msgTypeEmptyData
79
82
}
80
83
81
- network := networkFromAddr (uep .UDPAddr )
84
+ network := networkFromAddr (( * net .UDPAddr )( uep ) )
82
85
83
86
// Check if we are on DragonFly or OpenBSD systems
84
87
// which require two independent sockets for listening
@@ -91,7 +94,7 @@ func (s *UDPConn) Send(pl payload, spkt spk, ep Endpoint) error {
91
94
}
92
95
93
96
buf := e .MarshalBinaryAndSeal (spkt )
94
- if n , err := conn .WriteToUDP (buf , uep .UDPAddr ); err != nil {
97
+ if n , err := conn .WriteToUDP (buf , ( * net .UDPAddr )( uep ) ); err != nil {
95
98
return err
96
99
} else if n != len (buf ) {
97
100
return fmt .Errorf ("partial write" )
@@ -147,6 +150,6 @@ func receiveFromConn(conn *net.UDPConn) ReceiveFunc {
147
150
return nil , nil , fmt .Errorf ("parsed partial packet" )
148
151
}
149
152
150
- return e .payload , & UDPEndpoint { from } , nil
153
+ return e .payload , ( * UDPEndpoint )( from ) , nil
151
154
}
152
155
}
0 commit comments