@@ -17,10 +17,10 @@ use std::sync::Arc;
1717
1818use common:: chain:: SignedTransaction ;
1919use mempool:: TxOrigin ;
20- use p2p_types:: ip_or_socket_address:: IpOrSocketAddress ;
20+ use p2p_types:: { bannable_address :: BannableAddress , ip_or_socket_address:: IpOrSocketAddress } ;
2121
2222use crate :: {
23- error:: { ConversionError , P2pError } ,
23+ error:: P2pError ,
2424 interface:: { p2p_interface:: P2pInterface , types:: ConnectedPeer } ,
2525 net:: NetworkingService ,
2626 types:: peer_id:: PeerId ,
@@ -31,7 +31,7 @@ use crate::{
3131#[ async_trait:: async_trait]
3232impl < T > P2pInterface for P2p < T >
3333where
34- T : NetworkingService ,
34+ T : NetworkingService + Send + Sync ,
3535 T :: MessagingHandle : MessagingService ,
3636{
3737 async fn connect ( & mut self , addr : IpOrSocketAddress ) -> crate :: Result < ( ) > {
@@ -50,29 +50,23 @@ where
5050 rx. await ?
5151 }
5252
53- async fn list_banned ( & mut self ) -> crate :: Result < Vec < String > > {
53+ async fn list_banned ( & mut self ) -> crate :: Result < Vec < BannableAddress > > {
5454 let ( tx, rx) = oneshot_nofail:: channel ( ) ;
5555 self . tx_peer_manager
5656 . send ( PeerManagerEvent :: ListBanned ( tx) )
5757 . map_err ( |_| P2pError :: ChannelClosed ) ?;
5858 let list = rx. await ?;
59- Ok ( list. iter ( ) . map ( ToString :: to_string ) . collect ( ) )
59+ Ok ( list)
6060 }
61- async fn ban ( & mut self , addr : String ) -> crate :: Result < ( ) > {
61+ async fn ban ( & mut self , addr : BannableAddress ) -> crate :: Result < ( ) > {
6262 let ( tx, rx) = oneshot_nofail:: channel ( ) ;
63- let addr = addr
64- . parse :: < T :: BannableAddress > ( )
65- . map_err ( |_| P2pError :: ConversionError ( ConversionError :: InvalidAddress ( addr) ) ) ?;
6663 self . tx_peer_manager
6764 . send ( PeerManagerEvent :: Ban ( addr, tx) )
6865 . map_err ( |_| P2pError :: ChannelClosed ) ?;
6966 rx. await ?
7067 }
71- async fn unban ( & mut self , addr : String ) -> crate :: Result < ( ) > {
68+ async fn unban ( & mut self , addr : BannableAddress ) -> crate :: Result < ( ) > {
7269 let ( tx, rx) = oneshot_nofail:: channel ( ) ;
73- let addr = addr
74- . parse :: < T :: BannableAddress > ( )
75- . map_err ( |_| P2pError :: ConversionError ( ConversionError :: InvalidAddress ( addr) ) ) ?;
7670 self . tx_peer_manager
7771 . send ( PeerManagerEvent :: Unban ( addr, tx) )
7872 . map_err ( |_| P2pError :: ChannelClosed ) ?;
0 commit comments