@@ -3,10 +3,7 @@ use std::{collections::HashMap, io};
33use guest_metrics:: { plugin:: GuestAgentPlugin , GuestMetric , NetEvent , NetEventOp , NetInterface } ;
44use vif_detect:: VifDetector ;
55
6- use futures:: {
7- channel:: mpsc:: { self , UnboundedReceiver } ,
8- SinkExt , StreamExt ,
9- } ;
6+ use futures:: { channel:: mpsc:: UnboundedReceiver , StreamExt } ;
107use uuid:: Uuid ;
118
129use netlink_packet_core:: {
@@ -49,7 +46,7 @@ impl NetlinkConnection {
4946pub struct NetlinkPlugin ;
5047
5148impl GuestAgentPlugin for NetlinkPlugin {
52- async fn run ( self , mut channel : mpsc :: Sender < GuestMetric > ) {
49+ async fn run ( self , channel : flume :: Sender < GuestMetric > ) {
5350 let connection = NetlinkConnection :: new ( ) . unwrap ( ) ;
5451 let vif_identify = vif_detect:: PlatformVifDetector :: default ( ) ;
5552 let mut interfaces = HashMap :: new ( ) ;
@@ -91,7 +88,7 @@ impl GuestAgentPlugin for NetlinkPlugin {
9188 while let Some ( msg) = stream. next ( ) . await {
9289 if let NetlinkPayload :: InnerMessage ( inner_msg) = msg. payload {
9390 if let Err ( e) =
94- process_message ( inner_msg, & mut channel, & vif_identify, & mut interfaces) . await
91+ process_message ( inner_msg, & channel, & vif_identify, & mut interfaces) . await
9592 {
9693 log:: error!( "Unable to process netlink message: {e}" ) ;
9794 }
@@ -102,7 +99,7 @@ impl GuestAgentPlugin for NetlinkPlugin {
10299
103100async fn process_message (
104101 inner_msg : RouteNetlinkMessage ,
105- channel : & mut mpsc :: Sender < GuestMetric > ,
102+ channel : & flume :: Sender < GuestMetric > ,
106103 vif_identify : & impl VifDetector ,
107104 interfaces : & mut HashMap < u32 , Uuid > ,
108105) -> anyhow:: Result < ( ) > {
@@ -145,7 +142,7 @@ async fn process_message(
145142
146143 interfaces. insert ( link_message. header . index , uuid) ;
147144 channel
148- . send ( GuestMetric :: AddIface ( NetInterface {
145+ . send_async ( GuestMetric :: AddIface ( NetInterface {
149146 uuid,
150147 index : link_message. header . index ,
151148 name : ifname. clone ( ) ,
@@ -158,7 +155,7 @@ async fn process_message(
158155 return Ok ( ( ) ) ;
159156 } ;
160157
161- channel. send ( GuestMetric :: RmIface ( uuid) ) . await . ok ( ) ;
158+ channel. send_async ( GuestMetric :: RmIface ( uuid) ) . await . ok ( ) ;
162159 }
163160 RouteNetlinkMessage :: NewAddress ( address_message)
164161 | RouteNetlinkMessage :: GetAddress ( address_message) => {
@@ -184,7 +181,7 @@ async fn process_message(
184181 } ;
185182
186183 channel
187- . send ( GuestMetric :: Network ( NetEvent {
184+ . send_async ( GuestMetric :: Network ( NetEvent {
188185 iface_id,
189186 op : NetEventOp :: AddIp ( addr) ,
190187 } ) )
@@ -213,7 +210,7 @@ async fn process_message(
213210 } ;
214211
215212 channel
216- . send ( GuestMetric :: Network ( NetEvent {
213+ . send_async ( GuestMetric :: Network ( NetEvent {
217214 iface_id,
218215 op : NetEventOp :: RmIp ( addr) ,
219216 } ) )
0 commit comments