@@ -169,12 +169,13 @@ async fn process_device_read(
169169 }
170170 std:: collections:: hash_map:: Entry :: Vacant ( entry) => {
171171 let ( tx, rx) = tokio:: sync:: oneshot:: channel :: < ( ) > ( ) ;
172- let ( packet_sender , ip_stack_stream) = create_stream ( packet, config, up_pkt_sender, Some ( tx) ) ?;
172+ let ip_stack_stream = create_stream ( packet, config, up_pkt_sender, Some ( tx) ) ?;
173173 tokio:: spawn ( async move {
174174 rx. await . ok ( ) ;
175175 sessions_clone. lock ( ) . await . remove ( & network_tuple) ;
176176 log:: debug!( "session destroyed: {}" , network_tuple) ;
177177 } ) ;
178+ let packet_sender = ip_stack_stream. stream_sender ( ) ?;
178179 accept_sender. send ( ip_stack_stream) ?;
179180 entry. insert ( packet_sender) ;
180181 log:: debug!( "session created: {}" , network_tuple) ;
@@ -188,18 +189,18 @@ fn create_stream(
188189 cfg : & IpStackConfig ,
189190 up_pkt_sender : PacketSender ,
190191 msgr : Option < :: tokio:: sync:: oneshot:: Sender < ( ) > > ,
191- ) -> Result < ( PacketSender , IpStackStream ) > {
192+ ) -> Result < IpStackStream > {
192193 let src_addr = packet. src_addr ( ) ;
193194 let dst_addr = packet. dst_addr ( ) ;
194195 match packet. transport_header ( ) {
195196 TransportHeader :: Tcp ( h) => {
196197 let stream = IpStackTcpStream :: new ( src_addr, dst_addr, h. clone ( ) , up_pkt_sender, cfg. mtu , cfg. tcp_timeout , msgr) ?;
197- Ok ( ( stream . stream_sender ( ) , IpStackStream :: Tcp ( stream) ) )
198+ Ok ( IpStackStream :: Tcp ( stream) )
198199 }
199200 TransportHeader :: Udp ( _) => {
200201 let payload = packet. payload . unwrap_or_default ( ) ;
201202 let stream = IpStackUdpStream :: new ( src_addr, dst_addr, payload, up_pkt_sender, cfg. mtu , cfg. udp_timeout , msgr) ;
202- Ok ( ( stream . stream_sender ( ) , IpStackStream :: Udp ( stream) ) )
203+ Ok ( IpStackStream :: Udp ( stream) )
203204 }
204205 TransportHeader :: Unknown => Err ( IpStackError :: UnsupportedTransportProtocol ) ,
205206 }
0 commit comments