X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fonion_message%2Fmessenger.rs;h=21a1b302da09b76fa3f73cbc70953fa46919c3c6;hb=0c677533fc3055163c1768ef2211fbf7317d65ab;hp=a6f11bf6a7d75e07be52442569c42ed87d610870;hpb=be618bb7b527c9241dfd8919dfee71b171ade58d;p=rust-lightning diff --git a/lightning/src/onion_message/messenger.rs b/lightning/src/onion_message/messenger.rs index a6f11bf6..21a1b302 100644 --- a/lightning/src/onion_message/messenger.rs +++ b/lightning/src/onion_message/messenger.rs @@ -223,6 +223,13 @@ impl OnionMessageRecipient { *self = OnionMessageRecipient::ConnectedPeer(new_pending_messages); } } + + fn is_connected(&self) -> bool { + match self { + OnionMessageRecipient::ConnectedPeer(..) => true, + OnionMessageRecipient::PendingConnection(..) => false, + } + } } /// An [`OnionMessage`] for [`OnionMessenger`] to send. @@ -729,7 +736,11 @@ where }, hash_map::Entry::Occupied(mut e) => { e.get_mut().enqueue_message(onion_message); - Ok(SendSuccess::Buffered) + if e.get().is_connected() { + Ok(SendSuccess::Buffered) + } else { + Ok(SendSuccess::BufferedAwaitingConnection(first_node_id)) + } }, } }