Expose `self.sockets` in `Interface` via iterators

This is needed to not loose access to methods on sockets, e.g. iterating
over them and closing or checking which ports are being used.
This commit is contained in:
Emil Fresk 2021-11-14 09:46:58 +01:00
parent 1ce3b796ed
commit 8a8d2cc6ef
1 changed files with 10 additions and 0 deletions

View File

@ -555,6 +555,16 @@ where
&mut self.device
}
/// Get an iterator to the inner sockets.
pub fn sockets(&self) -> impl Iterator<Item = &Socket<'a>> {
self.sockets.iter()
}
/// Get a mutable iterator to the inner sockets.
pub fn sockets_mut(&mut self) -> impl Iterator<Item = &mut Socket<'a>> {
self.sockets.iter_mut()
}
/// Add an address to a list of subscribed multicast IP addresses.
///
/// Returns `Ok(announce_sent)` if the address was added successfully, where `annouce_sent`