Skip to content

Commit de968bb

Browse files
committed
fixup! Pass HRNResolver or DomainResolver into OnionMessenger
1 parent 266c669 commit de968bb

File tree

1 file changed

+20
-22
lines changed

1 file changed

+20
-22
lines changed

src/builder.rs

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ use lightning::chain::{chainmonitor, BestBlock};
2525
use lightning::ln::channelmanager::{self, ChainParameters, ChannelManagerReadArgs};
2626
use lightning::ln::msgs::{RoutingMessageHandler, SocketAddress};
2727
use lightning::ln::peer_handler::{IgnoringMessageHandler, MessageHandler};
28+
use lightning::log_trace;
2829
use lightning::onion_message::dns_resolution::DNSResolverMessageHandler;
2930
use lightning::routing::gossip::NodeAlias;
3031
use lightning::routing::router::DefaultRouter;
@@ -40,7 +41,6 @@ use lightning::util::persist::{
4041
};
4142
use lightning::util::ser::ReadableArgs;
4243
use lightning::util::sweep::OutputSweeper;
43-
use lightning::{log_trace, log_warn};
4444
use lightning_dns_resolver::OMDomainResolver;
4545
use lightning_persister::fs_store::v1::FilesystemStore;
4646
use vss_client::headers::VssHeaderProvider;
@@ -172,6 +172,8 @@ pub enum BuildError {
172172
InvalidTorProxyAddress,
173173
/// The provided alias is invalid.
174174
InvalidNodeAlias,
175+
/// The provided configuration is invalid.
176+
InvalidConfiguration(&'static str),
175177
/// An attempt to setup a runtime has failed.
176178
RuntimeSetupFailed,
177179
/// We failed to read data from the [`KVStore`].
@@ -216,6 +218,7 @@ impl fmt::Display for BuildError {
216218
write!(f, "Given announcement addresses are invalid.")
217219
},
218220
Self::InvalidTorProxyAddress => write!(f, "Given Tor proxy address is invalid."),
221+
Self::InvalidConfiguration(msg) => write!(f, "Given configuration is invalid: {}", msg),
219222
Self::RuntimeSetupFailed => write!(f, "Failed to setup a runtime."),
220223
Self::ReadFailed => write!(f, "Failed to read from store."),
221224
Self::WriteFailed => write!(f, "Failed to write to store."),
@@ -1772,34 +1775,29 @@ fn build_with_store_internal(
17721775
BuildError::DNSResolverSetupFailed
17731776
})?;
17741777

1775-
if *enable_hrn_resolution_service && may_announce_channel(&config).is_ok() {
1776-
let hrn_res = Arc::new(DNSHrnResolver(addr));
1777-
hrn_resolver = HRNResolver::Local(hrn_res);
1778+
let hrn_res = Arc::new(DNSHrnResolver(addr));
1779+
hrn_resolver = HRNResolver::Local(hrn_res);
1780+
1781+
if *enable_hrn_resolution_service {
1782+
if let Err(_) = may_announce_channel(&config) {
1783+
log_error!(
1784+
logger,
1785+
"HRN resolution service enabled, but node is not announceable."
1786+
);
1787+
return Err(BuildError::InvalidConfiguration(
1788+
"Node must announce channels to act as a resolver service.",
1789+
));
1790+
}
17781791

17791792
Arc::new(OMDomainResolver::<IgnoringMessageHandler>::with_runtime(
17801793
addr,
17811794
None,
17821795
Some(runtime_handle.clone()),
17831796
)) as Arc<dyn DNSResolverMessageHandler + Send + Sync>
17841797
} else {
1785-
if *enable_hrn_resolution_service {
1786-
log_warn!(logger, "Unable to act as an HRN resolution service. To act as an HRN resolution service, the node must be configured to announce channels.");
1787-
}
1788-
1789-
// Fallback/Default: Onion resolver
1790-
let hrn_res =
1791-
Arc::new(LDKOnionMessageDNSSECHrnResolver::new(Arc::clone(&network_graph)));
1792-
hrn_resolver = HRNResolver::Onion(Arc::clone(&hrn_res));
1793-
1794-
let pm_hook_clone = Arc::clone(&peer_manager_hook);
1795-
hrn_res.register_post_queue_action(Box::new(move || {
1796-
if let Ok(guard) = pm_hook_clone.lock() {
1797-
if let Some(pm) = guard.as_ref().and_then(|weak| weak.upgrade()) {
1798-
pm.process_events();
1799-
}
1800-
}
1801-
}));
1802-
hrn_res as Arc<dyn DNSResolverMessageHandler + Send + Sync>
1798+
// The user wants to use DNS to pay others, but NOT provide a service to others.
1799+
Arc::new(IgnoringMessageHandler {})
1800+
as Arc<dyn DNSResolverMessageHandler + Send + Sync>
18031801
}
18041802
},
18051803
};

0 commit comments

Comments
 (0)