mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-24 15:02:20 +01:00
Allow a DNSResolverMessageHandler
to set dns_resolver
feature
A `DNSResolverMessageHandler` which handles resolution requests should want the `NodeFeatures` included in the node's `node_announcement` to include `dns_resolver` to indicate to the world that it provides that service. Here we enable this by requesting extra feature flags from the `DNSResolverMessageHandler` in the features `OnionMessenger`, in turn, provides to `PeerManager` (which builds the `node_announcement`).
This commit is contained in:
parent
1abbe2a237
commit
457b634d09
2 changed files with 10 additions and 1 deletions
|
@ -34,6 +34,8 @@ use dnssec_prover::validation::verify_rr_stream;
|
|||
|
||||
use dnssec_prover::rr::Name;
|
||||
|
||||
use lightning_types::features::NodeFeatures;
|
||||
|
||||
use crate::blinded_path::message::DNSResolverContext;
|
||||
use crate::io;
|
||||
#[cfg(feature = "dnssec")]
|
||||
|
@ -67,6 +69,13 @@ pub trait DNSResolverMessageHandler {
|
|||
/// With this, we should be able to validate the DNS record we requested.
|
||||
fn handle_dnssec_proof(&self, message: DNSSECProof, context: DNSResolverContext);
|
||||
|
||||
/// Gets the node feature flags which this handler itself supports. Useful for setting the
|
||||
/// `dns_resolver` flag if this handler supports returning [`DNSSECProof`] messages in response
|
||||
/// to [`DNSSECQuery`] messages.
|
||||
fn provided_node_features(&self) -> NodeFeatures {
|
||||
NodeFeatures::empty()
|
||||
}
|
||||
|
||||
/// Release any [`DNSResolverMessage`]s that need to be sent.
|
||||
fn release_pending_messages(&self) -> Vec<(DNSResolverMessage, MessageSendInstructions)> {
|
||||
vec![]
|
||||
|
|
|
@ -1778,7 +1778,7 @@ where
|
|||
fn provided_node_features(&self) -> NodeFeatures {
|
||||
let mut features = NodeFeatures::empty();
|
||||
features.set_onion_messages_optional();
|
||||
features
|
||||
features | self.dns_resolver_handler.provided_node_features()
|
||||
}
|
||||
|
||||
fn provided_init_features(&self, _their_node_id: PublicKey) -> InitFeatures {
|
||||
|
|
Loading…
Add table
Reference in a new issue