Skip to content

Commit 7b532b7

Browse files
Merge pull request #1117 from mintlayer/p2p_addresses_refactor
Remove BannableAddress generic (p2p)
2 parents 1f12eec + df473b8 commit 7b532b7

File tree

33 files changed

+164
-163
lines changed

33 files changed

+164
-163
lines changed

dns_server/src/crawler_p2p/crawler_manager/tests/mock_manager.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
2020
use std::{
2121
collections::BTreeMap,
22-
net::{IpAddr, SocketAddr},
22+
net::SocketAddr,
2323
sync::{Arc, Mutex},
2424
time::Duration,
2525
};
@@ -117,7 +117,6 @@ pub struct MockSyncingEventReceiver {}
117117
impl NetworkingService for MockNetworkingService {
118118
type Transport = ();
119119
type Address = SocketAddr;
120-
type BannableAddress = IpAddr;
121120
type ConnectivityHandle = MockConnectivityHandle;
122121
type MessagingHandle = ();
123122
type SyncingEventReceiver = MockSyncingEventReceiver;

p2p/benches/benches.rs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,7 @@
1313
// See the License for the specific language governing permissions and
1414
// limitations under the License.
1515

16-
use std::{
17-
collections::BTreeSet,
18-
net::{IpAddr, SocketAddr},
19-
sync::Arc,
20-
};
16+
use std::{collections::BTreeSet, net::SocketAddr, sync::Arc};
2117

2218
use common::chain::config::create_unit_test_config;
2319
use criterion::{criterion_group, criterion_main, Criterion};
@@ -34,13 +30,9 @@ pub fn peer_db(c: &mut Criterion) {
3430
let db_store = peerdb_inmemory_store();
3531
let chain_config = create_unit_test_config();
3632
let p2p_config = Arc::new(test_p2p_config());
37-
let mut peerdb = PeerDb::<SocketAddr, IpAddr, _>::new(
38-
&chain_config,
39-
p2p_config,
40-
Default::default(),
41-
db_store,
42-
)
43-
.unwrap();
33+
let mut peerdb =
34+
PeerDb::<SocketAddr, _>::new(&chain_config, p2p_config, Default::default(), db_store)
35+
.unwrap();
4436

4537
for _ in 0..100000 {
4638
peerdb.peer_discovered(TestTcpAddressMaker::new());

p2p/src/interface/p2p_interface.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
use std::sync::Arc;
1717

1818
use common::chain::SignedTransaction;
19-
use p2p_types::{ip_or_socket_address::IpOrSocketAddress, p2p_event::P2pEvent};
19+
use p2p_types::{
20+
bannable_address::BannableAddress, ip_or_socket_address::IpOrSocketAddress, p2p_event::P2pEvent,
21+
};
2022

2123
use crate::{interface::types::ConnectedPeer, types::peer_id::PeerId};
2224

@@ -25,9 +27,9 @@ pub trait P2pInterface: Send + Sync {
2527
async fn connect(&mut self, addr: IpOrSocketAddress) -> crate::Result<()>;
2628
async fn disconnect(&mut self, peer_id: PeerId) -> crate::Result<()>;
2729

28-
async fn list_banned(&mut self) -> crate::Result<Vec<String>>;
29-
async fn ban(&mut self, addr: String) -> crate::Result<()>;
30-
async fn unban(&mut self, addr: String) -> crate::Result<()>;
30+
async fn list_banned(&mut self) -> crate::Result<Vec<BannableAddress>>;
31+
async fn ban(&mut self, addr: BannableAddress) -> crate::Result<()>;
32+
async fn unban(&mut self, addr: BannableAddress) -> crate::Result<()>;
3133

3234
async fn get_peer_count(&self) -> crate::Result<usize>;
3335
async fn get_bind_addresses(&self) -> crate::Result<Vec<String>>;

p2p/src/interface/p2p_interface_impl.rs

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ use std::sync::Arc;
1717

1818
use common::chain::SignedTransaction;
1919
use mempool::TxOrigin;
20-
use p2p_types::ip_or_socket_address::IpOrSocketAddress;
20+
use p2p_types::{bannable_address::BannableAddress, ip_or_socket_address::IpOrSocketAddress};
2121

2222
use 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]
3232
impl<T> P2pInterface for P2p<T>
3333
where
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)?;

p2p/src/interface/p2p_interface_impl_delegation.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use std::{
1919
};
2020

2121
use common::chain::SignedTransaction;
22-
use p2p_types::ip_or_socket_address::IpOrSocketAddress;
22+
use p2p_types::{bannable_address::BannableAddress, ip_or_socket_address::IpOrSocketAddress};
2323

2424
use crate::{types::peer_id::PeerId, P2pEvent};
2525

@@ -37,13 +37,13 @@ impl<T: Deref<Target = dyn P2pInterface> + DerefMut<Target = dyn P2pInterface> +
3737
self.deref_mut().disconnect(peer_id).await
3838
}
3939

40-
async fn list_banned(&mut self) -> crate::Result<Vec<String>> {
40+
async fn list_banned(&mut self) -> crate::Result<Vec<BannableAddress>> {
4141
self.deref_mut().list_banned().await
4242
}
43-
async fn ban(&mut self, addr: String) -> crate::Result<()> {
43+
async fn ban(&mut self, addr: BannableAddress) -> crate::Result<()> {
4444
self.deref_mut().ban(addr).await
4545
}
46-
async fn unban(&mut self, addr: String) -> crate::Result<()> {
46+
async fn unban(&mut self, addr: BannableAddress) -> crate::Result<()> {
4747
self.deref_mut().unban(addr).await
4848
}
4949

p2p/src/lib.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ pub use crate::{
3535
};
3636

3737
use std::{
38+
marker::PhantomData,
3839
net::{Ipv4Addr, Ipv6Addr, SocketAddr},
3940
sync::Arc,
4041
};
@@ -78,7 +79,7 @@ pub type Result<T> = core::result::Result<T, P2pError>;
7879

7980
struct P2p<T: NetworkingService> {
8081
/// A sender for the peer manager events.
81-
pub tx_peer_manager: mpsc::UnboundedSender<PeerManagerEvent<T>>,
82+
pub tx_peer_manager: mpsc::UnboundedSender<PeerManagerEvent>,
8283
mempool_handle: MempoolHandle,
8384

8485
backend_shutdown_sender: oneshot::Sender<()>,
@@ -92,11 +93,13 @@ struct P2p<T: NetworkingService> {
9293
sync_manager_task: JoinHandle<()>,
9394

9495
subscribers_sender: mpsc::UnboundedSender<P2pEventHandler>,
96+
97+
_phantom: PhantomData<T>,
9598
}
9699

97100
impl<T> P2p<T>
98101
where
99-
T: 'static + NetworkingService + Send,
102+
T: 'static + NetworkingService + Send + Sync,
100103
T::ConnectivityHandle: ConnectivityService<T>,
101104
T::MessagingHandle: MessagingService,
102105
T::SyncingEventReceiver: SyncingEventReceiver,
@@ -198,6 +201,7 @@ where
198201
peer_manager_task,
199202
sync_manager_task,
200203
subscribers_sender,
204+
_phantom: PhantomData,
201205
})
202206
}
203207

p2p/src/net/default_backend/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,6 @@ pub struct SyncingReceiver {
102102
impl<T: TransportSocket> NetworkingService for DefaultNetworkingService<T> {
103103
type Transport = T;
104104
type Address = T::Address;
105-
type BannableAddress = T::BannableAddress;
106105
type ConnectivityHandle = ConnectivityHandle<Self, T>;
107106
type MessagingHandle = MessagingHandle<T>;
108107
type SyncingEventReceiver = SyncingReceiver;

p2p/src/net/default_backend/transport/impls/channel.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ impl MpscChannelTransport {
8484
#[async_trait]
8585
impl TransportSocket for MpscChannelTransport {
8686
type Address = SocketAddr;
87-
type BannableAddress = IpAddr;
8887
type Listener = ChannelListener;
8988
type Stream = ChannelStream;
9089

p2p/src/net/default_backend/transport/impls/socks5.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@
1313
// See the License for the specific language governing permissions and
1414
// limitations under the License.
1515

16-
use std::{
17-
net::{IpAddr, SocketAddr},
18-
sync::Arc,
19-
};
16+
use std::{net::SocketAddr, sync::Arc};
2017

2118
use async_trait::async_trait;
2219
use futures::future::BoxFuture;
@@ -48,7 +45,6 @@ impl Socks5TransportSocket {
4845
#[async_trait]
4946
impl TransportSocket for Socks5TransportSocket {
5047
type Address = SocketAddr;
51-
type BannableAddress = IpAddr;
5248
type Listener = Socks5TransportListener;
5349
type Stream = Socks5TransportStream;
5450

p2p/src/net/default_backend/transport/impls/stream_adapter/wrapped_transport/tests.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,6 @@ impl TestTransport {
141141
#[async_trait]
142142
impl TransportSocket for TestTransport {
143143
type Address = <MpscChannelTransport as TransportSocket>::Address;
144-
type BannableAddress = <MpscChannelTransport as TransportSocket>::BannableAddress;
145144
type Listener = TestListener;
146145
type Stream = <MpscChannelTransport as TransportSocket>::Stream;
147146

0 commit comments

Comments
 (0)