@@ -19,6 +19,7 @@ use tokio::net::TcpStream;
19
19
20
20
use lightning:: ln:: peer_handler;
21
21
use lightning:: ln:: peer_handler:: SocketDescriptor as LnSocketTrait ;
22
+ use lightning:: ln:: msgs:: ChannelMessageHandler ;
22
23
23
24
use std:: mem;
24
25
use std:: net:: SocketAddr ;
@@ -42,7 +43,7 @@ pub struct Connection {
42
43
id : u64 ,
43
44
}
44
45
impl Connection {
45
- fn schedule_read ( peer_manager : Arc < peer_handler:: PeerManager < SocketDescriptor > > , us : Arc < Mutex < Self > > , reader : futures:: stream:: SplitStream < tokio_codec:: Framed < TcpStream , tokio_codec:: BytesCodec > > ) {
46
+ fn schedule_read ( peer_manager : Arc < peer_handler:: PeerManager < SocketDescriptor , Arc < dyn ChannelMessageHandler > > > , us : Arc < Mutex < Self > > , reader : futures:: stream:: SplitStream < tokio_codec:: Framed < TcpStream , tokio_codec:: BytesCodec > > ) {
46
47
let us_ref = us. clone ( ) ;
47
48
let us_close_ref = us. clone ( ) ;
48
49
let peer_manager_ref = peer_manager. clone ( ) ;
@@ -110,7 +111,7 @@ impl Connection {
110
111
///
111
112
/// You should poll the Receive end of event_notify and call get_and_clear_pending_events() on
112
113
/// ChannelManager and ChannelMonitor objects.
113
- pub fn setup_inbound ( peer_manager : Arc < peer_handler:: PeerManager < SocketDescriptor > > , event_notify : mpsc:: Sender < ( ) > , stream : TcpStream ) {
114
+ pub fn setup_inbound ( peer_manager : Arc < peer_handler:: PeerManager < SocketDescriptor , Arc < dyn ChannelMessageHandler > > > , event_notify : mpsc:: Sender < ( ) > , stream : TcpStream ) {
114
115
let ( reader, us) = Self :: new ( event_notify, stream) ;
115
116
116
117
if let Ok ( _) = peer_manager. new_inbound_connection ( SocketDescriptor :: new ( us. clone ( ) , peer_manager. clone ( ) ) ) {
@@ -124,7 +125,7 @@ impl Connection {
124
125
///
125
126
/// You should poll the Receive end of event_notify and call get_and_clear_pending_events() on
126
127
/// ChannelManager and ChannelMonitor objects.
127
- pub fn setup_outbound ( peer_manager : Arc < peer_handler:: PeerManager < SocketDescriptor > > , event_notify : mpsc:: Sender < ( ) > , their_node_id : PublicKey , stream : TcpStream ) {
128
+ pub fn setup_outbound ( peer_manager : Arc < peer_handler:: PeerManager < SocketDescriptor , Arc < dyn ChannelMessageHandler > > > , event_notify : mpsc:: Sender < ( ) > , their_node_id : PublicKey , stream : TcpStream ) {
128
129
let ( reader, us) = Self :: new ( event_notify, stream) ;
129
130
130
131
if let Ok ( initial_send) = peer_manager. new_outbound_connection ( their_node_id, SocketDescriptor :: new ( us. clone ( ) , peer_manager. clone ( ) ) ) {
@@ -142,7 +143,7 @@ impl Connection {
142
143
///
143
144
/// You should poll the Receive end of event_notify and call get_and_clear_pending_events() on
144
145
/// ChannelManager and ChannelMonitor objects.
145
- pub fn connect_outbound ( peer_manager : Arc < peer_handler:: PeerManager < SocketDescriptor > > , event_notify : mpsc:: Sender < ( ) > , their_node_id : PublicKey , addr : SocketAddr ) {
146
+ pub fn connect_outbound ( peer_manager : Arc < peer_handler:: PeerManager < SocketDescriptor , Arc < dyn ChannelMessageHandler > > > , event_notify : mpsc:: Sender < ( ) > , their_node_id : PublicKey , addr : SocketAddr ) {
146
147
let connect_timeout = Delay :: new ( Instant :: now ( ) + Duration :: from_secs ( 10 ) ) . then ( |_| {
147
148
future:: err ( std:: io:: Error :: new ( std:: io:: ErrorKind :: TimedOut , "timeout reached" ) )
148
149
} ) ;
@@ -161,10 +162,10 @@ impl Connection {
161
162
pub struct SocketDescriptor {
162
163
conn : Arc < Mutex < Connection > > ,
163
164
id : u64 ,
164
- peer_manager : Arc < peer_handler:: PeerManager < SocketDescriptor > > ,
165
+ peer_manager : Arc < peer_handler:: PeerManager < SocketDescriptor , Arc < dyn ChannelMessageHandler > > > ,
165
166
}
166
167
impl SocketDescriptor {
167
- fn new ( conn : Arc < Mutex < Connection > > , peer_manager : Arc < peer_handler:: PeerManager < SocketDescriptor > > ) -> Self {
168
+ fn new ( conn : Arc < Mutex < Connection > > , peer_manager : Arc < peer_handler:: PeerManager < SocketDescriptor , Arc < dyn ChannelMessageHandler > > > ) -> Self {
168
169
let id = conn. lock ( ) . unwrap ( ) . id ;
169
170
Self { conn, id, peer_manager }
170
171
}
0 commit comments