]> git.bitcoin.ninja Git - rust-lightning/commit
Replace `EventsProvider` on `OnionMessageHandler` with a single fn
authorMatt Corallo <git@bluematt.me>
Sun, 17 Dec 2023 19:43:28 +0000 (19:43 +0000)
committerMatt Corallo <git@bluematt.me>
Tue, 14 May 2024 20:46:40 +0000 (20:46 +0000)
commit0897e7fbb42596c9a890d5366b4b0b7df126b760
tree8f01f1fdb691b9b3b213b15d6584cac0168d4169
parent8ba5202797d1765d08a6cc41c078c4436433f868
Replace `EventsProvider` on `OnionMessageHandler` with a single fn

`OnionMessageHandler`s are expected to regularly release a set of
nodes which we need to directly connect to to deliver onion
messages. In order to do so, they currently extend
`EventsProvider`, returning that set as `Event::ConnectionNeeded`s.

While this works fine in Rust, the `EventsProvider` interface
doesn't map well in bindings due to it taking a flexible trait impl
as a method argument.

Instead, here, we convert `OnionMessageHandler` to include a single
function which returns nodes in the form of a `node_id` and
`Vec<SocketAddress>`. This is a bit simpler, if less flexible, API,
and while largely equivalent, is easier to map in bindings.
lightning-background-processor/src/lib.rs
lightning/src/ln/msgs.rs
lightning/src/ln/peer_handler.rs
lightning/src/onion_message/messenger.rs