@@ -1094,20 +1094,19 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
1094
1094
macro_rules! get_peer_for_forwarding {
1095
1095
( $node_id: expr) => {
1096
1096
{
1097
- let descriptor = match peers. node_id_to_descriptor. get( $node_id) {
1098
- Some ( descriptor) => descriptor. clone( ) ,
1097
+ match peers. node_id_to_descriptor. get( $node_id) {
1098
+ Some ( descriptor) => match peers. peers. get_mut( & descriptor) {
1099
+ Some ( peer) => {
1100
+ if peer. their_features. is_none( ) {
1101
+ continue ;
1102
+ }
1103
+ peer
1104
+ } ,
1105
+ None => panic!( "Inconsistent peers set state!" ) ,
1106
+ } ,
1099
1107
None => {
1100
1108
continue ;
1101
1109
} ,
1102
- } ;
1103
- match peers. peers. get_mut( & descriptor) {
1104
- Some ( peer) => {
1105
- if peer. their_features. is_none( ) {
1106
- continue ;
1107
- }
1108
- ( descriptor, peer)
1109
- } ,
1110
- None => panic!( "Inconsistent peers set state!" ) ,
1111
1110
}
1112
1111
}
1113
1112
}
@@ -1117,14 +1116,14 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
1117
1116
log_trace ! ( self . logger, "Handling SendAcceptChannel event in peer_handler for node {} for channel {}" ,
1118
1117
log_pubkey!( node_id) ,
1119
1118
log_bytes!( msg. temporary_channel_id) ) ;
1120
- let ( _ , peer) = get_peer_for_forwarding ! ( node_id) ;
1119
+ let peer = get_peer_for_forwarding ! ( node_id) ;
1121
1120
peer. pending_outbound_buffer . push_back ( peer. channel_encryptor . encrypt_message ( & encode_msg ! ( msg) ) ) ;
1122
1121
} ,
1123
1122
MessageSendEvent :: SendOpenChannel { ref node_id, ref msg } => {
1124
1123
log_trace ! ( self . logger, "Handling SendOpenChannel event in peer_handler for node {} for channel {}" ,
1125
1124
log_pubkey!( node_id) ,
1126
1125
log_bytes!( msg. temporary_channel_id) ) ;
1127
- let ( _ , peer) = get_peer_for_forwarding ! ( node_id) ;
1126
+ let peer = get_peer_for_forwarding ! ( node_id) ;
1128
1127
peer. pending_outbound_buffer . push_back ( peer. channel_encryptor . encrypt_message ( & encode_msg ! ( msg) ) ) ;
1129
1128
} ,
1130
1129
MessageSendEvent :: SendFundingCreated { ref node_id, ref msg } => {
@@ -1134,28 +1133,28 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
1134
1133
log_funding_channel_id!( msg. funding_txid, msg. funding_output_index) ) ;
1135
1134
// TODO: If the peer is gone we should generate a DiscardFunding event
1136
1135
// indicating to the wallet that they should just throw away this funding transaction
1137
- let ( _ , peer) = get_peer_for_forwarding ! ( node_id) ;
1136
+ let peer = get_peer_for_forwarding ! ( node_id) ;
1138
1137
peer. pending_outbound_buffer . push_back ( peer. channel_encryptor . encrypt_message ( & encode_msg ! ( msg) ) ) ;
1139
1138
} ,
1140
1139
MessageSendEvent :: SendFundingSigned { ref node_id, ref msg } => {
1141
1140
log_trace ! ( self . logger, "Handling SendFundingSigned event in peer_handler for node {} for channel {}" ,
1142
1141
log_pubkey!( node_id) ,
1143
1142
log_bytes!( msg. channel_id) ) ;
1144
- let ( _ , peer) = get_peer_for_forwarding ! ( node_id) ;
1143
+ let peer = get_peer_for_forwarding ! ( node_id) ;
1145
1144
peer. pending_outbound_buffer . push_back ( peer. channel_encryptor . encrypt_message ( & encode_msg ! ( msg) ) ) ;
1146
1145
} ,
1147
1146
MessageSendEvent :: SendFundingLocked { ref node_id, ref msg } => {
1148
1147
log_trace ! ( self . logger, "Handling SendFundingLocked event in peer_handler for node {} for channel {}" ,
1149
1148
log_pubkey!( node_id) ,
1150
1149
log_bytes!( msg. channel_id) ) ;
1151
- let ( _ , peer) = get_peer_for_forwarding ! ( node_id) ;
1150
+ let peer = get_peer_for_forwarding ! ( node_id) ;
1152
1151
peer. pending_outbound_buffer . push_back ( peer. channel_encryptor . encrypt_message ( & encode_msg ! ( msg) ) ) ;
1153
1152
} ,
1154
1153
MessageSendEvent :: SendAnnouncementSignatures { ref node_id, ref msg } => {
1155
1154
log_trace ! ( self . logger, "Handling SendAnnouncementSignatures event in peer_handler for node {} for channel {})" ,
1156
1155
log_pubkey!( node_id) ,
1157
1156
log_bytes!( msg. channel_id) ) ;
1158
- let ( _ , peer) = get_peer_for_forwarding ! ( node_id) ;
1157
+ let peer = get_peer_for_forwarding ! ( node_id) ;
1159
1158
peer. pending_outbound_buffer . push_back ( peer. channel_encryptor . encrypt_message ( & encode_msg ! ( msg) ) ) ;
1160
1159
} ,
1161
1160
MessageSendEvent :: UpdateHTLCs { ref node_id, updates : msgs:: CommitmentUpdate { ref update_add_htlcs, ref update_fulfill_htlcs, ref update_fail_htlcs, ref update_fail_malformed_htlcs, ref update_fee, ref commitment_signed } } => {
@@ -1165,7 +1164,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
1165
1164
update_fulfill_htlcs. len( ) ,
1166
1165
update_fail_htlcs. len( ) ,
1167
1166
log_bytes!( commitment_signed. channel_id) ) ;
1168
- let ( _ , peer) = get_peer_for_forwarding ! ( node_id) ;
1167
+ let peer = get_peer_for_forwarding ! ( node_id) ;
1169
1168
for msg in update_add_htlcs {
1170
1169
peer. pending_outbound_buffer . push_back ( peer. channel_encryptor . encrypt_message ( & encode_msg ! ( msg) ) ) ;
1171
1170
}
@@ -1187,28 +1186,28 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
1187
1186
log_trace ! ( self . logger, "Handling SendRevokeAndACK event in peer_handler for node {} for channel {}" ,
1188
1187
log_pubkey!( node_id) ,
1189
1188
log_bytes!( msg. channel_id) ) ;
1190
- let ( _ , peer) = get_peer_for_forwarding ! ( node_id) ;
1189
+ let peer = get_peer_for_forwarding ! ( node_id) ;
1191
1190
peer. pending_outbound_buffer . push_back ( peer. channel_encryptor . encrypt_message ( & encode_msg ! ( msg) ) ) ;
1192
1191
} ,
1193
1192
MessageSendEvent :: SendClosingSigned { ref node_id, ref msg } => {
1194
1193
log_trace ! ( self . logger, "Handling SendClosingSigned event in peer_handler for node {} for channel {}" ,
1195
1194
log_pubkey!( node_id) ,
1196
1195
log_bytes!( msg. channel_id) ) ;
1197
- let ( _ , peer) = get_peer_for_forwarding ! ( node_id) ;
1196
+ let peer = get_peer_for_forwarding ! ( node_id) ;
1198
1197
peer. pending_outbound_buffer . push_back ( peer. channel_encryptor . encrypt_message ( & encode_msg ! ( msg) ) ) ;
1199
1198
} ,
1200
1199
MessageSendEvent :: SendShutdown { ref node_id, ref msg } => {
1201
1200
log_trace ! ( self . logger, "Handling Shutdown event in peer_handler for node {} for channel {}" ,
1202
1201
log_pubkey!( node_id) ,
1203
1202
log_bytes!( msg. channel_id) ) ;
1204
- let ( _ , peer) = get_peer_for_forwarding ! ( node_id) ;
1203
+ let peer = get_peer_for_forwarding ! ( node_id) ;
1205
1204
peer. pending_outbound_buffer . push_back ( peer. channel_encryptor . encrypt_message ( & encode_msg ! ( msg) ) ) ;
1206
1205
} ,
1207
1206
MessageSendEvent :: SendChannelReestablish { ref node_id, ref msg } => {
1208
1207
log_trace ! ( self . logger, "Handling SendChannelReestablish event in peer_handler for node {} for channel {}" ,
1209
1208
log_pubkey!( node_id) ,
1210
1209
log_bytes!( msg. channel_id) ) ;
1211
- let ( _ , peer) = get_peer_for_forwarding ! ( node_id) ;
1210
+ let peer = get_peer_for_forwarding ! ( node_id) ;
1212
1211
peer. pending_outbound_buffer . push_back ( peer. channel_encryptor . encrypt_message ( & encode_msg ! ( msg) ) ) ;
1213
1212
} ,
1214
1213
MessageSendEvent :: BroadcastChannelAnnouncement { msg, update_msg } => {
@@ -1259,17 +1258,17 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
1259
1258
log_trace ! ( self . logger, "Handling SendErrorMessage HandleError event in peer_handler for node {} with message {}" ,
1260
1259
log_pubkey!( node_id) ,
1261
1260
msg. data) ;
1262
- let ( _ , peer) = get_peer_for_forwarding ! ( node_id) ;
1261
+ let peer = get_peer_for_forwarding ! ( node_id) ;
1263
1262
peer. pending_outbound_buffer . push_back ( peer. channel_encryptor . encrypt_message ( & encode_msg ! ( msg) ) ) ;
1264
1263
} ,
1265
1264
}
1266
1265
} ,
1267
1266
MessageSendEvent :: SendChannelRangeQuery { ref node_id, ref msg } => {
1268
- let ( _ , peer) = get_peer_for_forwarding ! ( node_id) ;
1267
+ let peer = get_peer_for_forwarding ! ( node_id) ;
1269
1268
peer. pending_outbound_buffer . push_back ( peer. channel_encryptor . encrypt_message ( & encode_msg ! ( msg) ) ) ;
1270
1269
} ,
1271
1270
MessageSendEvent :: SendShortIdsQuery { ref node_id, ref msg } => {
1272
- let ( _ , peer) = get_peer_for_forwarding ! ( node_id) ;
1271
+ let peer = get_peer_for_forwarding ! ( node_id) ;
1273
1272
peer. pending_outbound_buffer . push_back ( peer. channel_encryptor . encrypt_message ( & encode_msg ! ( msg) ) ) ;
1274
1273
}
1275
1274
MessageSendEvent :: SendReplyChannelRange { ref node_id, ref msg } => {
@@ -1279,7 +1278,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
1279
1278
msg. first_blocknum,
1280
1279
msg. number_of_blocks,
1281
1280
msg. sync_complete) ;
1282
- let ( _ , peer) = get_peer_for_forwarding ! ( node_id) ;
1281
+ let peer = get_peer_for_forwarding ! ( node_id) ;
1283
1282
peer. pending_outbound_buffer . push_back ( peer. channel_encryptor . encrypt_message ( & encode_msg ! ( msg) ) ) ;
1284
1283
}
1285
1284
}
0 commit comments