Skip to content

Commit 7d2f585

Browse files
Add channel struct
1 parent 2087032 commit 7d2f585

File tree

6 files changed

+517
-56
lines changed

6 files changed

+517
-56
lines changed

lightning/src/ln/channelmanager.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1843,7 +1843,12 @@ impl<ChanSigner: ChannelKeys, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
18431843
// TODO: If we decided to blame ourselves (or one of our channels) in
18441844
// process_onion_failure we should close that channel as it implies our
18451845
// next-hop is needlessly blaming us!
1846+
let mut faultive_node = None;
18461847
if let Some(update) = channel_update {
1848+
faultive_node = match update.clone() {
1849+
msgs::HTLCFailChannelUpdate::NodeFailure {node_id, is_permanent: _} => Some(node_id),
1850+
_ => None,
1851+
};
18471852
self.channel_state.lock().unwrap().pending_msg_events.push(
18481853
events::MessageSendEvent::PaymentFailureNetworkUpdate {
18491854
update,
@@ -1854,6 +1859,7 @@ impl<ChanSigner: ChannelKeys, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
18541859
events::Event::PaymentFailed {
18551860
payment_hash: payment_hash.clone(),
18561861
rejected_by_dest: !payment_retryable,
1862+
faultive_node: faultive_node,
18571863
#[cfg(test)]
18581864
error_code: onion_error_code,
18591865
#[cfg(test)]
@@ -1878,6 +1884,7 @@ impl<ChanSigner: ChannelKeys, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
18781884
events::Event::PaymentFailed {
18791885
payment_hash: payment_hash.clone(),
18801886
rejected_by_dest: path.len() == 1,
1887+
faultive_node: None,
18811888
#[cfg(test)]
18821889
error_code: Some(*failure_code),
18831890
#[cfg(test)]

lightning/src/ln/functional_test_utils.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -770,7 +770,7 @@ macro_rules! expect_payment_failed {
770770
let events = $node.node.get_and_clear_pending_events();
771771
assert_eq!(events.len(), 1);
772772
match events[0] {
773-
Event::PaymentFailed { ref payment_hash, rejected_by_dest, ref error_code, ref error_data } => {
773+
Event::PaymentFailed { ref payment_hash, rejected_by_dest, faultive_node: _, ref error_code, ref error_data } => {
774774
assert_eq!(*payment_hash, $expected_payment_hash);
775775
assert_eq!(rejected_by_dest, $rejected_by_dest);
776776
assert!(error_code.is_some());

lightning/src/ln/functional_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5658,7 +5658,7 @@ fn run_onion_failure_test_with_fail_intercept<F1,F2,F3>(_name: &str, test_case:
56585658

56595659
let events = nodes[0].node.get_and_clear_pending_events();
56605660
assert_eq!(events.len(), 1);
5661-
if let &Event::PaymentFailed { payment_hash:_, ref rejected_by_dest, ref error_code, error_data: _ } = &events[0] {
5661+
if let &Event::PaymentFailed { payment_hash:_, ref rejected_by_dest, faultive_node: _, ref error_code, error_data: _ } = &events[0] {
56625662
assert_eq!(*rejected_by_dest, !expected_retryable);
56635663
assert_eq!(*error_code, expected_error_code);
56645664
} else {

0 commit comments

Comments
 (0)