Skip to content

Commit 3220f3b

Browse files
committed
Add gossip_queries messages to wire decoding
To enable gossip_queries message decoding, this commit implements the wire module's Encoding trait for each message type. It also adds these messages to the wire module's Message enum and the read function to enable decoding of a buffer.
1 parent 5af299e commit 3220f3b

File tree

2 files changed

+60
-0
lines changed

2 files changed

+60
-0
lines changed

lightning/src/ln/peer_handler.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,21 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
841841
// TODO: forward msg along to all our other peers!
842842
}
843843
},
844+
wire::Message::QueryShortChannelIds(_msg) => {
845+
// TODO: handle message
846+
},
847+
wire::Message::ReplyShortChannelIdsEnd(_msg) => {
848+
// TODO: handle message
849+
},
850+
wire::Message::QueryChannelRange(_msg) => {
851+
// TODO: handle message
852+
},
853+
wire::Message::ReplyChannelRange(_msg) => {
854+
// TODO: handle message
855+
},
856+
wire::Message::GossipTimestampFilter(_msg) => {
857+
// TODO: handle message
858+
},
844859

845860
// Unknown messages:
846861
wire::Message::Unknown(msg_type) if msg_type.is_even() => {

lightning/src/ln/wire.rs

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ pub enum Message {
5555
ChannelAnnouncement(msgs::ChannelAnnouncement),
5656
NodeAnnouncement(msgs::NodeAnnouncement),
5757
ChannelUpdate(msgs::ChannelUpdate),
58+
QueryShortChannelIds(msgs::QueryShortChannelIds),
59+
ReplyShortChannelIdsEnd(msgs::ReplyShortChannelIdsEnd),
60+
QueryChannelRange(msgs::QueryChannelRange),
61+
ReplyChannelRange(msgs::ReplyChannelRange),
62+
GossipTimestampFilter(msgs::GossipTimestampFilter),
5863
/// A message that could not be decoded because its type is unknown.
5964
Unknown(MessageType),
6065
}
@@ -90,6 +95,11 @@ impl Message {
9095
&Message::ChannelAnnouncement(ref msg) => msg.type_id(),
9196
&Message::NodeAnnouncement(ref msg) => msg.type_id(),
9297
&Message::ChannelUpdate(ref msg) => msg.type_id(),
98+
&Message::QueryShortChannelIds(ref msg) => msg.type_id(),
99+
&Message::ReplyShortChannelIdsEnd(ref msg) => msg.type_id(),
100+
&Message::QueryChannelRange(ref msg) => msg.type_id(),
101+
&Message::ReplyChannelRange(ref msg) => msg.type_id(),
102+
&Message::GossipTimestampFilter(ref msg) => msg.type_id(),
93103
&Message::Unknown(type_id) => type_id,
94104
}
95105
}
@@ -186,6 +196,21 @@ pub fn read<R: ::std::io::Read>(buffer: &mut R) -> Result<Message, msgs::DecodeE
186196
msgs::ChannelUpdate::TYPE => {
187197
Ok(Message::ChannelUpdate(Readable::read(buffer)?))
188198
},
199+
msgs::QueryShortChannelIds::TYPE => {
200+
Ok(Message::QueryShortChannelIds(Readable::read(buffer)?))
201+
},
202+
msgs::ReplyShortChannelIdsEnd::TYPE => {
203+
Ok(Message::ReplyShortChannelIdsEnd(Readable::read(buffer)?))
204+
},
205+
msgs::QueryChannelRange::TYPE => {
206+
Ok(Message::QueryChannelRange(Readable::read(buffer)?))
207+
},
208+
msgs::ReplyChannelRange::TYPE => {
209+
Ok(Message::ReplyChannelRange(Readable::read(buffer)?))
210+
}
211+
msgs::GossipTimestampFilter::TYPE => {
212+
Ok(Message::GossipTimestampFilter(Readable::read(buffer)?))
213+
},
189214
_ => {
190215
Ok(Message::Unknown(MessageType(message_type)))
191216
},
@@ -312,6 +337,26 @@ impl Encode for msgs::ChannelUpdate {
312337
const TYPE: u16 = 258;
313338
}
314339

340+
impl Encode for msgs::QueryShortChannelIds {
341+
const TYPE: u16 = 261;
342+
}
343+
344+
impl Encode for msgs::ReplyShortChannelIdsEnd {
345+
const TYPE: u16 = 262;
346+
}
347+
348+
impl Encode for msgs::QueryChannelRange {
349+
const TYPE: u16 = 263;
350+
}
351+
352+
impl Encode for msgs::ReplyChannelRange {
353+
const TYPE: u16 = 264;
354+
}
355+
356+
impl Encode for msgs::GossipTimestampFilter {
357+
const TYPE: u16 = 265;
358+
}
359+
315360
#[cfg(test)]
316361
mod tests {
317362
use super::*;

0 commit comments

Comments
 (0)