Merge pull request #1588 from TheBlueMatt/2022-06-ffs-dumb-ser
authorMatt Corallo <649246+TheBlueMatt@users.noreply.github.com>
Tue, 5 Jul 2022 20:46:43 +0000 (13:46 -0700)
committerGitHub <noreply@github.com>
Tue, 5 Jul 2022 20:46:43 +0000 (13:46 -0700)
Do not execute the default_value expr until we need it in TLV deser

41 files changed:
fuzz/src/bin/gen_target.sh
fuzz/src/msg_targets/gen_target.sh
fuzz/src/msg_targets/mod.rs
fuzz/src/msg_targets/msg_accept_channel.rs
fuzz/src/msg_targets/msg_announcement_signatures.rs
fuzz/src/msg_targets/msg_channel_announcement.rs
fuzz/src/msg_targets/msg_channel_details.rs [new file with mode: 0644]
fuzz/src/msg_targets/msg_channel_ready.rs
fuzz/src/msg_targets/msg_channel_reestablish.rs
fuzz/src/msg_targets/msg_channel_update.rs
fuzz/src/msg_targets/msg_closing_signed.rs
fuzz/src/msg_targets/msg_commitment_signed.rs
fuzz/src/msg_targets/msg_decoded_onion_error_packet.rs
fuzz/src/msg_targets/msg_error_message.rs
fuzz/src/msg_targets/msg_funding_created.rs
fuzz/src/msg_targets/msg_funding_signed.rs
fuzz/src/msg_targets/msg_gossip_timestamp_filter.rs
fuzz/src/msg_targets/msg_init.rs
fuzz/src/msg_targets/msg_node_announcement.rs
fuzz/src/msg_targets/msg_onion_hop_data.rs
fuzz/src/msg_targets/msg_open_channel.rs
fuzz/src/msg_targets/msg_ping.rs
fuzz/src/msg_targets/msg_pong.rs
fuzz/src/msg_targets/msg_query_channel_range.rs
fuzz/src/msg_targets/msg_query_short_channel_ids.rs
fuzz/src/msg_targets/msg_reply_channel_range.rs
fuzz/src/msg_targets/msg_reply_short_channel_ids_end.rs
fuzz/src/msg_targets/msg_revoke_and_ack.rs
fuzz/src/msg_targets/msg_shutdown.rs
fuzz/src/msg_targets/msg_target_template.txt
fuzz/src/msg_targets/msg_update_add_htlc.rs
fuzz/src/msg_targets/msg_update_fail_htlc.rs
fuzz/src/msg_targets/msg_update_fail_malformed_htlc.rs
fuzz/src/msg_targets/msg_update_fee.rs
fuzz/src/msg_targets/msg_update_fulfill_htlc.rs
fuzz/src/msg_targets/msg_warning_message.rs
fuzz/targets.h
lightning/src/ln/channelmanager.rs
lightning/src/util/config.rs
lightning/src/util/ser.rs
lightning/src/util/ser_macros.rs

index b88b72503779d72854fbbb213a77b0f82e474336..c0daa5a3a0f36abfb9b898438a0641135302c770 100755 (executable)
@@ -47,3 +47,5 @@ GEN_TEST msg_channel_update msg_targets::
 GEN_TEST msg_onion_hop_data msg_targets::
 GEN_TEST msg_ping msg_targets::
 GEN_TEST msg_pong msg_targets::
+
+GEN_TEST msg_channel_details msg_targets::
index 848793db50082b20cbe1c520dd430bde30466140..753a98325a4c37713ee8ecaa837dfb85d30869d4 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 GEN_TEST() {
-       tn=msg_$(echo $1 | sed 's/\([a-z0-9]\)\([A-Z]\)/\1_\2/g' | tr '[:upper:]' '[:lower:]')
+       tn=msg_$(echo $1 | sed s'/.*:://g' | sed 's/\([a-z0-9]\)\([A-Z]\)/\1_\2/g' | tr '[:upper:]' '[:lower:]')
        fn=${tn}.rs
        cat msg_target_template.txt | sed s/MSG_TARGET/$1/ | sed "s/TARGET_NAME/$tn/" | sed "s/TEST_MSG/$2/" | sed "s/EXTRA_ARGS/$3/" > $fn
        echo "pub mod $tn;" >> mod.rs
@@ -11,37 +11,39 @@ echo "mod utils;" > mod.rs
 
 # Note when adding new targets here you should add a similar line in src/bin/gen_target.sh
 
-GEN_TEST AcceptChannel test_msg_simple ""
-GEN_TEST AnnouncementSignatures test_msg_simple ""
-GEN_TEST ClosingSigned test_msg_simple ""
-GEN_TEST CommitmentSigned test_msg_simple ""
-GEN_TEST FundingCreated test_msg_simple ""
-GEN_TEST ChannelReady test_msg_simple ""
-GEN_TEST FundingSigned test_msg_simple ""
-GEN_TEST GossipTimestampFilter test_msg_simple ""
-GEN_TEST Init test_msg_simple ""
-GEN_TEST OnionHopData test_msg_simple ""
-GEN_TEST OpenChannel test_msg_simple ""
-GEN_TEST Ping test_msg_simple ""
-GEN_TEST Pong test_msg_simple ""
-GEN_TEST QueryChannelRange test_msg_simple ""
-GEN_TEST ReplyShortChannelIdsEnd test_msg_simple ""
-GEN_TEST RevokeAndACK test_msg_simple ""
-GEN_TEST Shutdown test_msg_simple ""
-GEN_TEST UpdateAddHTLC test_msg_simple ""
-GEN_TEST UpdateFailHTLC test_msg_simple ""
-GEN_TEST UpdateFailMalformedHTLC test_msg_simple ""
-GEN_TEST UpdateFee test_msg_simple ""
-GEN_TEST UpdateFulfillHTLC test_msg_simple ""
-
-GEN_TEST ChannelReestablish test_msg ""
-GEN_TEST DecodedOnionErrorPacket test_msg ""
-
-GEN_TEST ChannelAnnouncement test_msg_exact ""
-GEN_TEST NodeAnnouncement test_msg_exact ""
-GEN_TEST QueryShortChannelIds test_msg ""
-GEN_TEST ReplyChannelRange test_msg ""
-
-GEN_TEST ErrorMessage test_msg_hole ", 32, 2"
-GEN_TEST WarningMessage test_msg_hole ", 32, 2"
-GEN_TEST ChannelUpdate test_msg_hole ", 108, 1"
+GEN_TEST lightning::ln::msgs::AcceptChannel test_msg_simple ""
+GEN_TEST lightning::ln::msgs::AnnouncementSignatures test_msg_simple ""
+GEN_TEST lightning::ln::msgs::ClosingSigned test_msg_simple ""
+GEN_TEST lightning::ln::msgs::CommitmentSigned test_msg_simple ""
+GEN_TEST lightning::ln::msgs::FundingCreated test_msg_simple ""
+GEN_TEST lightning::ln::msgs::ChannelReady test_msg_simple ""
+GEN_TEST lightning::ln::msgs::FundingSigned test_msg_simple ""
+GEN_TEST lightning::ln::msgs::GossipTimestampFilter test_msg_simple ""
+GEN_TEST lightning::ln::msgs::Init test_msg_simple ""
+GEN_TEST lightning::ln::msgs::OnionHopData test_msg_simple ""
+GEN_TEST lightning::ln::msgs::OpenChannel test_msg_simple ""
+GEN_TEST lightning::ln::msgs::Ping test_msg_simple ""
+GEN_TEST lightning::ln::msgs::Pong test_msg_simple ""
+GEN_TEST lightning::ln::msgs::QueryChannelRange test_msg_simple ""
+GEN_TEST lightning::ln::msgs::ReplyShortChannelIdsEnd test_msg_simple ""
+GEN_TEST lightning::ln::msgs::RevokeAndACK test_msg_simple ""
+GEN_TEST lightning::ln::msgs::Shutdown test_msg_simple ""
+GEN_TEST lightning::ln::msgs::UpdateAddHTLC test_msg_simple ""
+GEN_TEST lightning::ln::msgs::UpdateFailHTLC test_msg_simple ""
+GEN_TEST lightning::ln::msgs::UpdateFailMalformedHTLC test_msg_simple ""
+GEN_TEST lightning::ln::msgs::UpdateFee test_msg_simple ""
+GEN_TEST lightning::ln::msgs::UpdateFulfillHTLC test_msg_simple ""
+
+GEN_TEST lightning::ln::msgs::ChannelReestablish test_msg ""
+GEN_TEST lightning::ln::msgs::DecodedOnionErrorPacket test_msg ""
+
+GEN_TEST lightning::ln::msgs::ChannelAnnouncement test_msg_exact ""
+GEN_TEST lightning::ln::msgs::NodeAnnouncement test_msg_exact ""
+GEN_TEST lightning::ln::msgs::QueryShortChannelIds test_msg ""
+GEN_TEST lightning::ln::msgs::ReplyChannelRange test_msg ""
+
+GEN_TEST lightning::ln::msgs::ErrorMessage test_msg_hole ", 32, 2"
+GEN_TEST lightning::ln::msgs::WarningMessage test_msg_hole ", 32, 2"
+GEN_TEST lightning::ln::msgs::ChannelUpdate test_msg_hole ", 108, 1"
+
+GEN_TEST lightning::ln::channelmanager::ChannelDetails test_msg_simple ""
index dd1540ce51ec51f21c3bdc28fed92d31bd194127..67d66e23f5da8635a9c3d8e78e11358b71563a7f 100644 (file)
@@ -30,3 +30,4 @@ pub mod msg_reply_channel_range;
 pub mod msg_error_message;
 pub mod msg_warning_message;
 pub mod msg_channel_update;
+pub mod msg_channel_details;
index a8ec438784bca1a4c6d4fae28d5d9fd2b735ce5f..1732bf2f791073077265b9e287a521652381367f 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_accept_channel_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::AcceptChannel, data);
+       test_msg_simple!(lightning::ln::msgs::AcceptChannel, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_accept_channel_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::AcceptChannel, data);
+       test_msg_simple!(lightning::ln::msgs::AcceptChannel, data);
 }
index 0fc40fcb69bd7353a1a261370f81fccf166c3c32..15e4e6d8044fb4fcdc3fcf16d0ab0d8216d70298 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_announcement_signatures_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::AnnouncementSignatures, data);
+       test_msg_simple!(lightning::ln::msgs::AnnouncementSignatures, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_announcement_signatures_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::AnnouncementSignatures, data);
+       test_msg_simple!(lightning::ln::msgs::AnnouncementSignatures, data);
 }
index 53ffe0eff76996237476fb14e7c107e8d5c1ada7..7a36520fb2f602f14d3b71abb9f0a9f58915e2a5 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_channel_announcement_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_exact!(msgs::ChannelAnnouncement, data);
+       test_msg_exact!(lightning::ln::msgs::ChannelAnnouncement, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_channel_announcement_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_exact!(msgs::ChannelAnnouncement, data);
+       test_msg_exact!(lightning::ln::msgs::ChannelAnnouncement, data);
 }
diff --git a/fuzz/src/msg_targets/msg_channel_details.rs b/fuzz/src/msg_targets/msg_channel_details.rs
new file mode 100644 (file)
index 0000000..f448a71
--- /dev/null
@@ -0,0 +1,25 @@
+// This file is Copyright its original authors, visible in version control
+// history.
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+// This file is auto-generated by gen_target.sh based on msg_target_template.txt
+// To modify it, modify msg_target_template.txt and run gen_target.sh instead.
+
+use msg_targets::utils::VecWriter;
+use utils::test_logger;
+
+#[inline]
+pub fn msg_channel_details_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
+       test_msg_simple!(lightning::ln::channelmanager::ChannelDetails, data);
+}
+
+#[no_mangle]
+pub extern "C" fn msg_channel_details_run(data: *const u8, datalen: usize) {
+       let data = unsafe { std::slice::from_raw_parts(data, datalen) };
+       test_msg_simple!(lightning::ln::channelmanager::ChannelDetails, data);
+}
index e5f3b25c691ab87fb7d242787450eb9d958bc21e..d95a86004fa7c2ee591a5a1bf2392946380b683f 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_channel_ready_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::ChannelReady, data);
+       test_msg_simple!(lightning::ln::msgs::ChannelReady, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_channel_ready_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::ChannelReady, data);
+       test_msg_simple!(lightning::ln::msgs::ChannelReady, data);
 }
index 7316bfbdf801dad578db052af768889022ab1632..2b934c00c294a8e141ec7bc5a3bb2b5f3abb2bdf 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_channel_reestablish_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg!(msgs::ChannelReestablish, data);
+       test_msg!(lightning::ln::msgs::ChannelReestablish, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_channel_reestablish_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg!(msgs::ChannelReestablish, data);
+       test_msg!(lightning::ln::msgs::ChannelReestablish, data);
 }
index 1cd9ddbbfe01e2532900e6dd24b70048518e3b6e..7c7822e659513b28ce9ed17a082cd440cf2450b7 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_channel_update_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_hole!(msgs::ChannelUpdate, data, 108, 1);
+       test_msg_hole!(lightning::ln::msgs::ChannelUpdate, data, 108, 1);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_channel_update_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_hole!(msgs::ChannelUpdate, data, 108, 1);
+       test_msg_hole!(lightning::ln::msgs::ChannelUpdate, data, 108, 1);
 }
index 52f39af29a98f82150d6150493065c7b942cebe0..f494acf62a7db8251e5bc98716945131c2c2ede5 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_closing_signed_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::ClosingSigned, data);
+       test_msg_simple!(lightning::ln::msgs::ClosingSigned, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_closing_signed_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::ClosingSigned, data);
+       test_msg_simple!(lightning::ln::msgs::ClosingSigned, data);
 }
index 163ce74460678cc6365cc2f94ccf11b70252e31d..63c38ce8e54e022c7e0efb25b675bdb5f49d6ec8 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_commitment_signed_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::CommitmentSigned, data);
+       test_msg_simple!(lightning::ln::msgs::CommitmentSigned, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_commitment_signed_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::CommitmentSigned, data);
+       test_msg_simple!(lightning::ln::msgs::CommitmentSigned, data);
 }
index 92fb532e643932541cd3323eb454004248c74db8..af4963245b4bb7df6d11f524692ad595357f7f55 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_decoded_onion_error_packet_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg!(msgs::DecodedOnionErrorPacket, data);
+       test_msg!(lightning::ln::msgs::DecodedOnionErrorPacket, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_decoded_onion_error_packet_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg!(msgs::DecodedOnionErrorPacket, data);
+       test_msg!(lightning::ln::msgs::DecodedOnionErrorPacket, data);
 }
index 7fba2c4dc8e9366e2d6b74138faa5bbde7bafc6d..4a70074043fc27ecd40e266f3d74c4755676b971 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_error_message_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_hole!(msgs::ErrorMessage, data, 32, 2);
+       test_msg_hole!(lightning::ln::msgs::ErrorMessage, data, 32, 2);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_error_message_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_hole!(msgs::ErrorMessage, data, 32, 2);
+       test_msg_hole!(lightning::ln::msgs::ErrorMessage, data, 32, 2);
 }
index e0005cb082a4523d181fb94b344afe900a86d8fb..7fad86e743085016362a378e91f896780fc3b7a6 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_funding_created_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::FundingCreated, data);
+       test_msg_simple!(lightning::ln::msgs::FundingCreated, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_funding_created_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::FundingCreated, data);
+       test_msg_simple!(lightning::ln::msgs::FundingCreated, data);
 }
index f0586e7b294a06b48200f304c35c51eb98160e51..82886d6393af85183778ad9be722309708b99f1e 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_funding_signed_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::FundingSigned, data);
+       test_msg_simple!(lightning::ln::msgs::FundingSigned, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_funding_signed_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::FundingSigned, data);
+       test_msg_simple!(lightning::ln::msgs::FundingSigned, data);
 }
index 448aaffc90c2b88432500cf6b08ea5143e0d61e1..5c14a24162d62aa2ccd22534e9c0af7b94d551f9 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_gossip_timestamp_filter_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::GossipTimestampFilter, data);
+       test_msg_simple!(lightning::ln::msgs::GossipTimestampFilter, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_gossip_timestamp_filter_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::GossipTimestampFilter, data);
+       test_msg_simple!(lightning::ln::msgs::GossipTimestampFilter, data);
 }
index 4aa5c4a3143235ee9bfa817d48c17db63b5c2e17..efa53a473e97030ce6ecde031d8e0a891527ecf7 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_init_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::Init, data);
+       test_msg_simple!(lightning::ln::msgs::Init, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_init_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::Init, data);
+       test_msg_simple!(lightning::ln::msgs::Init, data);
 }
index 8f5751b9a01f0ec4aeaf16b8d82e0dbb82df1750..57c05145fc8f99c6c3476a62b43b0414a0aabd8b 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_node_announcement_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_exact!(msgs::NodeAnnouncement, data);
+       test_msg_exact!(lightning::ln::msgs::NodeAnnouncement, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_node_announcement_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_exact!(msgs::NodeAnnouncement, data);
+       test_msg_exact!(lightning::ln::msgs::NodeAnnouncement, data);
 }
index 757f316190cfa5b1bc57c9760372c9f123e01c1f..d73523dc15315fefa78edfbb70bd908f2a01652b 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_onion_hop_data_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::OnionHopData, data);
+       test_msg_simple!(lightning::ln::msgs::OnionHopData, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_onion_hop_data_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::OnionHopData, data);
+       test_msg_simple!(lightning::ln::msgs::OnionHopData, data);
 }
index ce637c167efe20f83253ca7b5c39d969e5c88441..2508fa353bb58806c9c802291541d832b121e92d 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_open_channel_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::OpenChannel, data);
+       test_msg_simple!(lightning::ln::msgs::OpenChannel, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_open_channel_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::OpenChannel, data);
+       test_msg_simple!(lightning::ln::msgs::OpenChannel, data);
 }
index 7b44ae1804ddb6fb4d3e38b8b2a28e75d4db8da1..36d4d0d8ae258b9ee353934af8fc7e41846dda93 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_ping_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::Ping, data);
+       test_msg_simple!(lightning::ln::msgs::Ping, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_ping_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::Ping, data);
+       test_msg_simple!(lightning::ln::msgs::Ping, data);
 }
index cff4a54fac291300b46dbdb394f97232dc4878bb..ea8a1bdd8aa5f5851200a918f78a6509d503a79c 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_pong_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::Pong, data);
+       test_msg_simple!(lightning::ln::msgs::Pong, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_pong_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::Pong, data);
+       test_msg_simple!(lightning::ln::msgs::Pong, data);
 }
index 4b3de6aa895b151a6817acdbff939ac4598329ee..75a2f042a32945c96c086e70a589170a9763a9a5 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_query_channel_range_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::QueryChannelRange, data);
+       test_msg_simple!(lightning::ln::msgs::QueryChannelRange, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_query_channel_range_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::QueryChannelRange, data);
+       test_msg_simple!(lightning::ln::msgs::QueryChannelRange, data);
 }
index 99cde111751b3a22fd76ac4b8ec9ecfdc194df27..f536c7f4f360bca71ad360189f465efd8d161db2 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_query_short_channel_ids_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg!(msgs::QueryShortChannelIds, data);
+       test_msg!(lightning::ln::msgs::QueryShortChannelIds, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_query_short_channel_ids_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg!(msgs::QueryShortChannelIds, data);
+       test_msg!(lightning::ln::msgs::QueryShortChannelIds, data);
 }
index d23b58a2db8f7656e5fb7d32010334c0656ee004..0fd0ed6340c649994fd1adc06da4a0e6d4478db6 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_reply_channel_range_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg!(msgs::ReplyChannelRange, data);
+       test_msg!(lightning::ln::msgs::ReplyChannelRange, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_reply_channel_range_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg!(msgs::ReplyChannelRange, data);
+       test_msg!(lightning::ln::msgs::ReplyChannelRange, data);
 }
index 7634329a435a7d995aa3a52fd87e11744b8b6369..712bb3ac478a9a8a911dcb804cc17db1182b2e9b 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_reply_short_channel_ids_end_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::ReplyShortChannelIdsEnd, data);
+       test_msg_simple!(lightning::ln::msgs::ReplyShortChannelIdsEnd, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_reply_short_channel_ids_end_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::ReplyShortChannelIdsEnd, data);
+       test_msg_simple!(lightning::ln::msgs::ReplyShortChannelIdsEnd, data);
 }
index 873939ca7c9d85b34c1d8cf15eb33f707adaec77..cd3e64c36db6d02c53a688bb1042d6440a18159c 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_revoke_and_ack_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::RevokeAndACK, data);
+       test_msg_simple!(lightning::ln::msgs::RevokeAndACK, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_revoke_and_ack_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::RevokeAndACK, data);
+       test_msg_simple!(lightning::ln::msgs::RevokeAndACK, data);
 }
index e6e74cc661a9c5c586cb98793281a42f7a3e1fd7..465d1e39ebf241b09fc8c3ae76b97247265803ff 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_shutdown_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::Shutdown, data);
+       test_msg_simple!(lightning::ln::msgs::Shutdown, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_shutdown_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::Shutdown, data);
+       test_msg_simple!(lightning::ln::msgs::Shutdown, data);
 }
index ebe832d59ba88f7faae6c6b1b72d49f6e811558e..14580183e5968f330f7d6f8e833b5ec7e1d9adf6 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn TARGET_NAME_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       TEST_MSG!(msgs::MSG_TARGET, dataEXTRA_ARGS);
+       TEST_MSG!(MSG_TARGET, dataEXTRA_ARGS);
 }
 
 #[no_mangle]
 pub extern "C" fn TARGET_NAME_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       TEST_MSG!(msgs::MSG_TARGET, dataEXTRA_ARGS);
+       TEST_MSG!(MSG_TARGET, dataEXTRA_ARGS);
 }
index 409f0fac8dff62e7f097ba6fad7a279230c29181..f031a4d89e904d01645406c2eddcb120d6e85dff 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_update_add_htlc_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::UpdateAddHTLC, data);
+       test_msg_simple!(lightning::ln::msgs::UpdateAddHTLC, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_update_add_htlc_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::UpdateAddHTLC, data);
+       test_msg_simple!(lightning::ln::msgs::UpdateAddHTLC, data);
 }
index 12d3f1c3fc3f0697d0cb0b5f130afa566fa7fca6..8d9dfedfcf8a8fa99f726637543f63e0df1d4e2d 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_update_fail_htlc_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::UpdateFailHTLC, data);
+       test_msg_simple!(lightning::ln::msgs::UpdateFailHTLC, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_update_fail_htlc_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::UpdateFailHTLC, data);
+       test_msg_simple!(lightning::ln::msgs::UpdateFailHTLC, data);
 }
index 0b36070d1e59d6d5076ef6e4579c1ba92290cc25..2635a4cb6a34fef8339529a2679ba632d831528d 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_update_fail_malformed_htlc_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::UpdateFailMalformedHTLC, data);
+       test_msg_simple!(lightning::ln::msgs::UpdateFailMalformedHTLC, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_update_fail_malformed_htlc_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::UpdateFailMalformedHTLC, data);
+       test_msg_simple!(lightning::ln::msgs::UpdateFailMalformedHTLC, data);
 }
index 3c23a902f5723dab1fef5cc3fe2e7a01aee2a52b..b891a363198c54e9b2e4c48db1f8b489317532a4 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_update_fee_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::UpdateFee, data);
+       test_msg_simple!(lightning::ln::msgs::UpdateFee, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_update_fee_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::UpdateFee, data);
+       test_msg_simple!(lightning::ln::msgs::UpdateFee, data);
 }
index 460ff0e167880a6771804c0a19213233575ef4c8..a96aa3729a30dc705be1b816bae91bf348d2ded3 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_update_fulfill_htlc_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_simple!(msgs::UpdateFulfillHTLC, data);
+       test_msg_simple!(lightning::ln::msgs::UpdateFulfillHTLC, data);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_update_fulfill_htlc_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_simple!(msgs::UpdateFulfillHTLC, data);
+       test_msg_simple!(lightning::ln::msgs::UpdateFulfillHTLC, data);
 }
index f033b6fd6e989ac119173fd0145cad370485a4ea..abcef229bd33f3c1afc13174ce0381c5b7406b5d 100644 (file)
 // This file is auto-generated by gen_target.sh based on msg_target_template.txt
 // To modify it, modify msg_target_template.txt and run gen_target.sh instead.
 
-use lightning::ln::msgs;
-
 use msg_targets::utils::VecWriter;
 use utils::test_logger;
 
 #[inline]
 pub fn msg_warning_message_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
-       test_msg_hole!(msgs::WarningMessage, data, 32, 2);
+       test_msg_hole!(lightning::ln::msgs::WarningMessage, data, 32, 2);
 }
 
 #[no_mangle]
 pub extern "C" fn msg_warning_message_run(data: *const u8, datalen: usize) {
        let data = unsafe { std::slice::from_raw_parts(data, datalen) };
-       test_msg_hole!(msgs::WarningMessage, data, 32, 2);
+       test_msg_hole!(lightning::ln::msgs::WarningMessage, data, 32, 2);
 }
index d142aa6487eb36e8e436457be951d84771162f8f..7958a6f614d817ee6783e3d4a7c175912204d15c 100644 (file)
@@ -36,3 +36,4 @@ void msg_channel_update_run(const unsigned char* data, size_t data_len);
 void msg_onion_hop_data_run(const unsigned char* data, size_t data_len);
 void msg_ping_run(const unsigned char* data, size_t data_len);
 void msg_pong_run(const unsigned char* data, size_t data_len);
+void msg_channel_details_run(const unsigned char* data, size_t data_len);
index 99bd2ec5534e443633d9395c29fa3884647c90a1..36c14242d9edffab80f07c864b0a35f5b8693fa5 100644 (file)
@@ -6198,7 +6198,7 @@ impl_writeable_tlv_based!(ChannelDetails, {
        (18, outbound_capacity_msat, required),
        // Note that by the time we get past the required read above, outbound_capacity_msat will be
        // filled in, so we can safely unwrap it here.
-       (19, next_outbound_htlc_limit_msat, (default_value, outbound_capacity_msat.0.unwrap())),
+       (19, next_outbound_htlc_limit_msat, (default_value, outbound_capacity_msat.0.unwrap() as u64)),
        (20, inbound_capacity_msat, required),
        (22, confirmations_required, option),
        (24, force_close_spend_delay, option),
index be7accc18dacfc837d89bddcec937e0e9eb4b349..2f65e958f8b60d0f0a0f72d3cd3b7ca1b009085a 100644 (file)
@@ -407,9 +407,9 @@ impl ::util::ser::Readable for LegacyChannelConfig {
                let mut forwarding_fee_base_msat = 0;
                read_tlv_fields!(reader, {
                        (0, forwarding_fee_proportional_millionths, required),
-                       (1, max_dust_htlc_exposure_msat, (default_value, 5_000_000)),
+                       (1, max_dust_htlc_exposure_msat, (default_value, 5_000_000u64)),
                        (2, cltv_expiry_delta, required),
-                       (3, force_close_avoidance_max_fee_satoshis, (default_value, 1000)),
+                       (3, force_close_avoidance_max_fee_satoshis, (default_value, 1000u64)),
                        (4, announced_channel, required),
                        (6, commit_upfront_shutdown_pubkey, required),
                        (8, forwarding_fee_base_msat, required),
index d26be4c9ef7a354873cd8c431419b5f1e72bc9e7..5b1a86a6a95f27a276f1dc221bd705f57fbf8ed4 100644 (file)
@@ -268,6 +268,12 @@ impl<T: Readable> Readable for OptionDeserWrapper<T> {
                Ok(Self(Some(Readable::read(reader)?)))
        }
 }
+/// When handling default_values, we want to map the default-value T directly
+/// to a OptionDeserWrapper<T> in a way that works for `field: T = t;` as
+/// well. Thus, we assume `Into<T> for T` does nothing and use that.
+impl<T: Readable> From<T> for OptionDeserWrapper<T> {
+       fn from(t: T) -> OptionDeserWrapper<T> { OptionDeserWrapper(Some(t)) }
+}
 
 /// Wrapper to write each element of a Vec with no length prefix
 pub(crate) struct VecWriteWrapper<'a, T: Writeable>(pub &'a Vec<T>);
index 816426b1133cb21a1e703129e6aecfa884f2c00c..351c2a1f5e25e4d21ad0c999e2f064bf366a6f35 100644 (file)
@@ -99,7 +99,7 @@ macro_rules! check_tlv_order {
                #[allow(unused_comparisons)] // Note that $type may be 0 making the second comparison always true
                let invalid_order = ($last_seen_type.is_none() || $last_seen_type.unwrap() < $type) && $typ.0 > $type;
                if invalid_order {
-                       $field = $default;
+                       $field = $default.into();
                }
        }};
        ($last_seen_type: expr, $typ: expr, $type: expr, $field: ident, required) => {{
@@ -128,7 +128,7 @@ macro_rules! check_missing_tlv {
                #[allow(unused_comparisons)] // Note that $type may be 0 making the second comparison always true
                let missing_req_type = $last_seen_type.is_none() || $last_seen_type.unwrap() < $type;
                if missing_req_type {
-                       $field = $default;
+                       $field = $default.into();
                }
        }};
        ($last_seen_type: expr, $type: expr, $field: ident, required) => {{
@@ -349,7 +349,7 @@ macro_rules! read_tlv_fields {
 
 macro_rules! init_tlv_based_struct_field {
        ($field: ident, (default_value, $default: expr)) => {
-               $field
+               $field.0.unwrap()
        };
        ($field: ident, option) => {
                $field
@@ -364,7 +364,7 @@ macro_rules! init_tlv_based_struct_field {
 
 macro_rules! init_tlv_field_var {
        ($field: ident, (default_value, $default: expr)) => {
-               let mut $field = $default;
+               let mut $field = ::util::ser::OptionDeserWrapper(None);
        };
        ($field: ident, required) => {
                let mut $field = ::util::ser::OptionDeserWrapper(None);