Skip to content

Commit 1ce88e5

Browse files
committed
f - remove ResponseErrorHandler
1 parent d5636e2 commit 1ce88e5

File tree

7 files changed

+14
-91
lines changed

7 files changed

+14
-91
lines changed

fuzz/src/onion_message.rs

+1-13
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use lightning::ln::script::ShutdownScript;
1111
use lightning::util::enforcing_trait_impls::EnforcingSigner;
1212
use lightning::util::logger::Logger;
1313
use lightning::util::ser::{Readable, Writeable, Writer};
14-
use lightning::onion_message::{CustomOnionMessageContents, CustomOnionMessageHandler, Destination, MessageRouter, OffersMessage, OffersMessageHandler, OnionMessagePath, OnionMessenger, ResponseError, ResponseErrorHandler};
14+
use lightning::onion_message::{CustomOnionMessageContents, CustomOnionMessageHandler, Destination, MessageRouter, OffersMessage, OffersMessageHandler, OnionMessagePath, OnionMessenger};
1515

1616
use crate::utils::test_logger;
1717

@@ -73,12 +73,6 @@ impl OffersMessageHandler for TestOffersMessageHandler {
7373
}
7474
}
7575

76-
impl ResponseErrorHandler for TestOffersMessageHandler {
77-
fn handle_response_error(&self, _error: ResponseError) {
78-
unreachable!()
79-
}
80-
}
81-
8276
struct TestCustomMessage {}
8377

8478
const CUSTOM_MESSAGE_TYPE: u64 = 4242;
@@ -110,12 +104,6 @@ impl CustomOnionMessageHandler for TestCustomMessageHandler {
110104
}
111105
}
112106

113-
impl ResponseErrorHandler for TestCustomMessageHandler {
114-
fn handle_response_error(&self, _error: ResponseError) {
115-
unreachable!()
116-
}
117-
}
118-
119107
pub struct VecWriter(pub Vec<u8>);
120108
impl Writer for VecWriter {
121109
fn write_all(&mut self, buf: &[u8]) -> Result<(), ::std::io::Error> {

lightning/src/ln/channelmanager.rs

+1-18
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ use crate::ln::msgs::{ChannelMessageHandler, DecodeError, LightningError, MAX_VA
5555
use crate::ln::outbound_payment;
5656
use crate::ln::outbound_payment::{OutboundPayments, PaymentAttempts, PendingOutboundPayment};
5757
use crate::ln::wire::Encode;
58-
use crate::onion_message::{OffersMessage, OffersMessageHandler, ResponseError, ResponseErrorHandler};
58+
use crate::onion_message::{OffersMessage, OffersMessageHandler};
5959
use crate::sign::{EntropySource, KeysManager, NodeSigner, Recipient, SignerProvider, ChannelSigner, WriteableEcdsaChannelSigner};
6060
use crate::util::config::{UserConfig, ChannelConfig};
6161
use crate::util::wakers::{Future, Notifier};
@@ -7060,23 +7060,6 @@ where
70607060
}
70617061
}
70627062

7063-
impl<M: Deref, T: Deref, ES: Deref, NS: Deref, SP: Deref, F: Deref, R: Deref, L: Deref>
7064-
ResponseErrorHandler for ChannelManager<M, T, ES, NS, SP, F, R, L>
7065-
where
7066-
M::Target: chain::Watch<<SP::Target as SignerProvider>::Signer>,
7067-
T::Target: BroadcasterInterface,
7068-
ES::Target: EntropySource,
7069-
NS::Target: NodeSigner,
7070-
SP::Target: SignerProvider,
7071-
F::Target: FeeEstimator,
7072-
R::Target: Router,
7073-
L::Target: Logger,
7074-
{
7075-
fn handle_response_error(&self, _error: ResponseError) {
7076-
todo!()
7077-
}
7078-
}
7079-
70807063
/// Fetches the set of [`NodeFeatures`] flags which are provided by or required by
70817064
/// [`ChannelManager`].
70827065
pub(crate) fn provided_node_features(config: &UserConfig) -> NodeFeatures {

lightning/src/ln/peer_handler.rs

+1-7
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ use crate::util::ser::{VecWriter, Writeable, Writer};
2727
use crate::ln::peer_channel_encryptor::{PeerChannelEncryptor,NextNoiseStep};
2828
use crate::ln::wire;
2929
use crate::ln::wire::{Encode, Type};
30-
use crate::onion_message::{CustomOnionMessageContents, CustomOnionMessageHandler, OffersMessage, OffersMessageHandler, ResponseError, ResponseErrorHandler, SimpleArcOnionMessenger, SimpleRefOnionMessenger};
30+
use crate::onion_message::{CustomOnionMessageContents, CustomOnionMessageHandler, OffersMessage, OffersMessageHandler, SimpleArcOnionMessenger, SimpleRefOnionMessenger};
3131
use crate::routing::gossip::{NetworkGraph, P2PGossipSync, NodeId, NodeAlias};
3232
use crate::util::atomic_counter::AtomicCounter;
3333
use crate::util::logger::Logger;
@@ -129,12 +129,6 @@ impl CustomOnionMessageHandler for IgnoringMessageHandler {
129129
Ok(None)
130130
}
131131
}
132-
impl ResponseErrorHandler for IgnoringMessageHandler {
133-
fn handle_response_error(&self, _error: ResponseError) {
134-
// Since handler implementations return None for a response.
135-
unreachable!();
136-
}
137-
}
138132

139133
impl CustomOnionMessageContents for Infallible {
140134
fn tlv_type(&self) -> u64 { unreachable!(); }

lightning/src/onion_message/functional_tests.rs

+1-13
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use crate::blinded_path::BlindedPath;
1313
use crate::sign::{NodeSigner, Recipient};
1414
use crate::ln::features::InitFeatures;
1515
use crate::ln::msgs::{self, DecodeError, OnionMessageHandler};
16-
use super::{CustomOnionMessageContents, CustomOnionMessageHandler, Destination, MessageRouter, OffersMessage, OffersMessageHandler, OnionMessageContents, OnionMessagePath, OnionMessenger, ResponseError, ResponseErrorHandler, SendError};
16+
use super::{CustomOnionMessageContents, CustomOnionMessageHandler, Destination, MessageRouter, OffersMessage, OffersMessageHandler, OnionMessageContents, OnionMessagePath, OnionMessenger, SendError};
1717
use crate::util::ser::{Writeable, Writer};
1818
use crate::util::test_utils;
1919

@@ -63,12 +63,6 @@ impl OffersMessageHandler for TestOffersMessageHandler {
6363
}
6464
}
6565

66-
impl ResponseErrorHandler for TestOffersMessageHandler {
67-
fn handle_response_error(&self, _error: ResponseError) {
68-
todo!()
69-
}
70-
}
71-
7266
#[derive(Clone)]
7367
struct TestCustomMessage {}
7468

@@ -124,12 +118,6 @@ impl CustomOnionMessageHandler for TestCustomMessageHandler {
124118
}
125119
}
126120

127-
impl ResponseErrorHandler for TestCustomMessageHandler {
128-
fn handle_response_error(&self, _error: ResponseError) {
129-
todo!()
130-
}
131-
}
132-
133121
fn create_nodes(num_messengers: u8) -> Vec<MessengerNode> {
134122
let mut nodes = Vec::new();
135123
for i in 0..num_messengers {

lightning/src/onion_message/messenger.rs

+8-37
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ pub enum SendError {
221221
///
222222
/// [`IgnoringMessageHandler`]: crate::ln::peer_handler::IgnoringMessageHandler
223223
/// [`CustomMessage`]: Self::CustomMessage
224-
pub trait CustomOnionMessageHandler: ResponseErrorHandler {
224+
pub trait CustomOnionMessageHandler {
225225
/// The message known to the handler. To support multiple message types, you may want to make this
226226
/// an enum with a variant for each supported message.
227227
type CustomMessage: CustomOnionMessageContents;
@@ -234,28 +234,6 @@ pub trait CustomOnionMessageHandler: ResponseErrorHandler {
234234
fn read_custom_message<R: io::Read>(&self, message_type: u64, buffer: &mut R) -> Result<Option<Self::CustomMessage>, msgs::DecodeError>;
235235
}
236236

237-
/// Handler for errors occurring when responding to an onion message.
238-
///
239-
/// Each message handler may choose to reply to an onion message with a response. This handler is
240-
/// used when an error occurs when responding.
241-
pub trait ResponseErrorHandler {
242-
/// Called if an error occurred when sending a response to the handled message.
243-
fn handle_response_error(&self, error: ResponseError);
244-
}
245-
246-
/// An error when replying to an onion message.
247-
#[derive(Debug, PartialEq, Eq)]
248-
pub enum ResponseError {
249-
/// Failed to get the node id from the [`NodeSigner`].
250-
GetNodeIdFailed,
251-
/// No reply path in the onion message.
252-
NoReplyPath,
253-
/// Could not find a path to the destination.
254-
PathNotFound,
255-
/// Failed to send the reply.
256-
Sending(SendError),
257-
}
258-
259237
impl<ES: Deref, NS: Deref, L: Deref, MR: Deref, OMH: Deref, CMH: Deref>
260238
OnionMessenger<ES, NS, L, MR, OMH, CMH>
261239
where
@@ -345,9 +323,9 @@ where
345323
}
346324
}
347325

348-
fn respond_with_onion_message<T: CustomOnionMessageContents, EH: ResponseErrorHandler>(
326+
fn respond_with_onion_message<T: CustomOnionMessageContents>(
349327
&self, response: OnionMessageContents<T>, path_id: Option<[u8; 32]>,
350-
reply_path: Option<BlindedPath>, error_handler: &EH
328+
reply_path: Option<BlindedPath>
351329
) {
352330
let sender = match self.node_signer.get_node_id(Recipient::Node) {
353331
Ok(node_id) => node_id,
@@ -356,7 +334,7 @@ where
356334
self.logger, "No sender to respond to onion message with path_id {:02x?}",
357335
path_id
358336
);
359-
return error_handler.handle_response_error(ResponseError::GetNodeIdFailed);
337+
return;
360338
}
361339
};
362340

@@ -369,7 +347,7 @@ where
369347
self.logger, "No reply path to respond to onion message with path_id {:02x?}",
370348
path_id
371349
);
372-
return error_handler.handle_response_error(ResponseError::NoReplyPath);
350+
return;
373351
},
374352
};
375353

@@ -380,7 +358,7 @@ where
380358
self.logger, "No path to respond to onion message with path_id {:02x?}",
381359
path_id
382360
);
383-
return error_handler.handle_response_error(ResponseError::PathNotFound);
361+
return;
384362
},
385363
};
386364

@@ -391,7 +369,7 @@ where
391369
self.logger, "Failed responding to onion message with path_id {:02x?}: {:?}",
392370
path_id, e
393371
);
394-
return error_handler.handle_response_error(ResponseError::Sending(e));
372+
return;
395373
}
396374
}
397375

@@ -490,14 +468,7 @@ where
490468
};
491469

492470
if let Some(response) = response {
493-
match response {
494-
OnionMessageContents::Offers(_) => self.respond_with_onion_message(
495-
response, path_id, reply_path, &*self.offers_handler
496-
),
497-
OnionMessageContents::Custom(_) => self.respond_with_onion_message(
498-
response, path_id, reply_path, &*self.custom_handler
499-
),
500-
}
471+
self.respond_with_onion_message(response, path_id, reply_path);
501472
}
502473
},
503474
Ok((Payload::Forward(ForwardControlTlvs::Unblinded(ForwardTlvs {

lightning/src/onion_message/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,6 @@ mod packet;
2727
mod functional_tests;
2828

2929
// Re-export structs so they can be imported with just the `onion_message::` module prefix.
30-
pub use self::messenger::{CustomOnionMessageContents, CustomOnionMessageHandler, Destination, MessageRouter, OnionMessageContents, OnionMessagePath, OnionMessenger, ResponseError, ResponseErrorHandler, SendError, SimpleArcOnionMessenger, SimpleRefOnionMessenger};
30+
pub use self::messenger::{CustomOnionMessageContents, CustomOnionMessageHandler, Destination, MessageRouter, OnionMessageContents, OnionMessagePath, OnionMessenger, SendError, SimpleArcOnionMessenger, SimpleRefOnionMessenger};
3131
pub use self::offers::{OffersMessage, OffersMessageHandler};
3232
pub(crate) use self::packet::{ControlTlvs, Packet};

lightning/src/onion_message/offers.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ use crate::offers::invoice_error::InvoiceError;
1616
use crate::offers::invoice_request::InvoiceRequest;
1717
use crate::offers::invoice::Invoice;
1818
use crate::offers::parse::ParseError;
19-
use crate::onion_message::messenger::ResponseErrorHandler;
2019
use crate::util::logger::Logger;
2120
use crate::util::ser::{ReadableArgs, Writeable, Writer};
2221

@@ -30,7 +29,7 @@ const INVOICE_ERROR_TLV_TYPE: u64 = 68;
3029
/// A handler for an [`OnionMessage`] containing a BOLT 12 Offers message as its payload.
3130
///
3231
/// [`OnionMessage`]: crate::ln::msgs::OnionMessage
33-
pub trait OffersMessageHandler: ResponseErrorHandler {
32+
pub trait OffersMessageHandler {
3433
/// Handles the given message by either responding with an [`Invoice`], sending a payment, or
3534
/// replying with an error.
3635
fn handle_message(&self, message: OffersMessage) -> Option<OffersMessage>;

0 commit comments

Comments
 (0)