use futures_util::stream::StreamExt;
use rtnetlink::{new_multicast_connection, MulticastGroup};
#[tokio::main]
async fn main() -> Result<(), String> {
let (conn, mut _handle, mut messages) = new_multicast_connection(&[
MulticastGroup::Link,
MulticastGroup::Ipv4Ifaddr,
MulticastGroup::Ipv6Ifaddr,
MulticastGroup::Ipv4Route,
MulticastGroup::Ipv6Route,
MulticastGroup::MplsRoute,
MulticastGroup::Ipv4Mroute,
MulticastGroup::Ipv6Mroute,
MulticastGroup::Neigh,
MulticastGroup::Ipv4Netconf,
MulticastGroup::Ipv6Netconf,
MulticastGroup::Ipv4Rule,
MulticastGroup::Ipv6Rule,
MulticastGroup::Nsid,
MulticastGroup::MplsNetconf,
])
.map_err(|e| format!("{e}"))?;
tokio::spawn(conn);
while let Some((message, _)) = messages.next().await {
let payload = message.payload;
println!("{payload:?}");
}
Ok(())
}