Skip to content

Commit 90e790d

Browse files
committed
Require Clone + Sync + Send + 'static for event and connection loggers
.. we should consider dropping `Deref` and instead just commiting to store a `Arc<L>` everwhere, as it gets tedious to maintain. However, this is barely scraping by and the least invasive change here.
1 parent 0df58e1 commit 90e790d

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

src/connection.rs

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::logger::{log_error, log_info, FilesystemLogger, Logger};
1+
use crate::logger::{log_error, log_info, Logger};
22
use crate::types::PeerManager;
33
use crate::Error;
44

@@ -7,13 +7,16 @@ use lightning::ln::msgs::SocketAddress;
77
use bitcoin::secp256k1::PublicKey;
88

99
use std::net::ToSocketAddrs;
10+
use std::ops::Deref;
1011
use std::sync::Arc;
1112
use std::time::Duration;
1213

13-
pub(crate) async fn connect_peer_if_necessary(
14-
node_id: PublicKey, addr: SocketAddress, peer_manager: Arc<PeerManager>,
15-
logger: Arc<FilesystemLogger>,
16-
) -> Result<(), Error> {
14+
pub(crate) async fn connect_peer_if_necessary<L: Deref + Clone + Sync + Send>(
15+
node_id: PublicKey, addr: SocketAddress, peer_manager: Arc<PeerManager>, logger: L,
16+
) -> Result<(), Error>
17+
where
18+
L::Target: Logger,
19+
{
1720
for (pman_node_id, _pman_addr) in peer_manager.get_peer_node_ids() {
1821
if node_id == pman_node_id {
1922
return Ok(());
@@ -23,10 +26,12 @@ pub(crate) async fn connect_peer_if_necessary(
2326
do_connect_peer(node_id, addr, peer_manager, logger).await
2427
}
2528

26-
pub(crate) async fn do_connect_peer(
27-
node_id: PublicKey, addr: SocketAddress, peer_manager: Arc<PeerManager>,
28-
logger: Arc<FilesystemLogger>,
29-
) -> Result<(), Error> {
29+
pub(crate) async fn do_connect_peer<L: Deref + Clone + Sync + Send>(
30+
node_id: PublicKey, addr: SocketAddress, peer_manager: Arc<PeerManager>, logger: L,
31+
) -> Result<(), Error>
32+
where
33+
L::Target: Logger,
34+
{
3035
log_info!(logger, "Connecting to peer: {}@{}", node_id, addr);
3136

3237
let socket_addr = addr

src/event.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ impl Future for EventFuture {
280280
}
281281
}
282282

283-
pub(crate) struct EventHandler<L: Deref>
283+
pub(crate) struct EventHandler<L: Deref + Clone + Sync + Send + 'static>
284284
where
285285
L::Target: Logger,
286286
{
@@ -296,7 +296,7 @@ where
296296
config: Arc<Config>,
297297
}
298298

299-
impl<L: Deref> EventHandler<L>
299+
impl<L: Deref + Clone + Sync + Send + 'static> EventHandler<L>
300300
where
301301
L::Target: Logger,
302302
{

0 commit comments

Comments
 (0)