@@ -31,9 +31,7 @@ pub mod async_io {
31
31
32
32
use log:: { debug, info, warn} ;
33
33
34
- use crate :: transport:: network:: std_stack:: {
35
- NetworkStack , NetworkStackDriver , NetworkStackMulticastDriver ,
36
- } ;
34
+ use crate :: transport:: network:: std_stack:: { NetworkStack , NetworkStackDriver } ;
37
35
use crate :: transport:: network:: { Ipv4Addr , Ipv6Addr , SocketAddr } ;
38
36
39
37
pub struct UdpBuffers ( ( ) ) ;
@@ -46,11 +44,11 @@ pub mod async_io {
46
44
47
45
pub struct UdpListener < ' a , D > ( Async < UdpSocket > , & ' a NetworkStack < D > )
48
46
where
49
- D : NetworkStackDriver ;
47
+ D : NetworkStackDriver + ' static ;
50
48
51
49
impl < ' a , D > UdpListener < ' a , D >
52
50
where
53
- D : NetworkStackDriver + ' a ,
51
+ D : NetworkStackDriver + ' a + ' static ,
54
52
{
55
53
pub async fn new (
56
54
stack : & ' a NetworkStack < D > ,
@@ -64,29 +62,23 @@ pub mod async_io {
64
62
Ok ( listener)
65
63
}
66
64
67
- pub fn join_multicast_v6 (
65
+ pub async fn join_multicast_v6 (
68
66
& mut self ,
69
67
multiaddr : Ipv6Addr ,
70
68
interface : u32 ,
71
- ) -> Result < ( ) , Error >
72
- where
73
- D : NetworkStackMulticastDriver + ' static ,
74
- {
69
+ ) -> Result < ( ) , Error > {
75
70
self . 0 . get_ref ( ) . join_multicast_v6 ( & multiaddr, interface) ?;
76
71
77
72
info ! ( "Joined IPV6 multicast {}/{}" , multiaddr, interface) ;
78
73
79
74
Ok ( ( ) )
80
75
}
81
76
82
- pub fn join_multicast_v4 (
77
+ pub async fn join_multicast_v4 (
83
78
& mut self ,
84
79
multiaddr : Ipv4Addr ,
85
80
interface : Ipv4Addr ,
86
- ) -> Result < ( ) , Error >
87
- where
88
- D : NetworkStackMulticastDriver + ' static ,
89
- {
81
+ ) -> Result < ( ) , Error > {
90
82
#[ cfg( not( target_os = "espidf" ) ) ]
91
83
self . 0 . get_ref ( ) . join_multicast_v4 ( & multiaddr, & interface) ?;
92
84
@@ -181,9 +173,7 @@ pub mod embassy_net {
181
173
182
174
use log:: { debug, info, warn} ;
183
175
184
- use crate :: transport:: network:: embassy_net_stack:: {
185
- NetworkStack , NetworkStackDriver , NetworkStackMulticastDriver ,
186
- } ;
176
+ use crate :: transport:: network:: embassy_net_stack:: { NetworkStack , NetworkStackDriver } ;
187
177
use crate :: transport:: network:: { IpAddr , Ipv4Addr , Ipv6Addr , SocketAddr } ;
188
178
189
179
const RX_BUF_SIZE : usize = 4096 ;
@@ -210,11 +200,11 @@ pub mod embassy_net {
210
200
211
201
pub struct UdpListener < ' a , D > ( UdpSocket < ' a > , & ' a NetworkStack < D > )
212
202
where
213
- D : NetworkStackDriver ;
203
+ D : NetworkStackDriver + ' static ;
214
204
215
205
impl < ' a , D > UdpListener < ' a , D >
216
206
where
217
- D : NetworkStackDriver + ' a ,
207
+ D : NetworkStackDriver + ' a + ' static ,
218
208
{
219
209
pub async fn new (
220
210
stack : & ' a NetworkStack < D > ,
@@ -239,16 +229,14 @@ pub mod embassy_net {
239
229
Ok ( UdpListener ( socket, stack) )
240
230
}
241
231
242
- pub fn join_multicast_v6 (
232
+ pub async fn join_multicast_v6 (
243
233
& mut self ,
244
234
multiaddr : Ipv6Addr ,
245
235
_interface : u32 ,
246
- ) -> Result < ( ) , Error >
247
- where
248
- D : NetworkStackMulticastDriver + ' static ,
249
- {
236
+ ) -> Result < ( ) , Error > {
250
237
self . 1
251
238
. join_multicast_group ( Self :: from_ip_addr ( IpAddr :: V6 ( multiaddr) ) )
239
+ . await
252
240
. map_err ( |e| {
253
241
warn ! ( "Error on the network: {:?}" , e) ;
254
242
ErrorCode :: Network
@@ -259,16 +247,14 @@ pub mod embassy_net {
259
247
Ok ( ( ) )
260
248
}
261
249
262
- pub fn join_multicast_v4 (
250
+ pub async fn join_multicast_v4 (
263
251
& mut self ,
264
252
multiaddr : Ipv4Addr ,
265
253
_interface : Ipv4Addr ,
266
- ) -> Result < ( ) , Error >
267
- where
268
- D : NetworkStackMulticastDriver + ' static ,
269
- {
254
+ ) -> Result < ( ) , Error > {
270
255
self . 1
271
256
. join_multicast_group ( Self :: from_ip_addr ( IpAddr :: V4 ( multiaddr) ) )
257
+ . await
272
258
. map_err ( |e| {
273
259
warn ! ( "Error on the network: {:?}" , e) ;
274
260
ErrorCode :: Network
0 commit comments