From 04a152fbcf66f39a0a54e949befcfeaa8df91360 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 23 Mar 2022 10:01:14 +1030 Subject: [PATCH] tools/generate-wire.py: make (and expose) individual TLV print functions. When we actually put bolt12 fields (.e.g tlv_invoice) in onion messages, that code will try to call printwire_tlv_invoice(), so expose it. Signed-off-by: Rusty Russell --- tools/gen/print_header_template | 4 ++++ tools/gen/print_impl_template | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/tools/gen/print_header_template b/tools/gen/print_header_template index f8c4bb338..ba09bc127 100644 --- a/tools/gen/print_header_template +++ b/tools/gen/print_header_template @@ -18,6 +18,10 @@ bool printwire_${msg.name}(const char *fieldname, const u8 *cursor); % endfor +% for tlv in tlvs.values(): +bool printwire_${tlv.name}(const char *fieldname, const u8 **cursor, size_t *plen); +% endfor + % if options.expose_subtypes: % for subtype in subtypes: bool printwire_${subtype.name}(const char *fieldname, const u8 **cursor, size_t *plen); diff --git a/tools/gen/print_impl_template b/tools/gen/print_impl_template index 8b4d24653..a38bda40a 100644 --- a/tools/gen/print_impl_template +++ b/tools/gen/print_impl_template @@ -119,13 +119,19 @@ ${print_fieldset(msg.fields.values())} } % endfor +% for tlv in tlvs.values(): +bool printwire_${tlv.name}(const char *fieldname, const u8 **cursor, size_t *plen) +{ + return printwire_tlvs(fieldname, cursor, plen, print_tlvs_${tlv.name}, ARRAY_SIZE(print_tlvs_${tlv.name})); +} +% endfor + % if bool(tlvs): bool print${options.enum_name}_tlv_message(const char *tlv_name, const u8 *msg) { size_t len = tal_count(msg); % for tlv in tlvs.values(): - if (strcmp(tlv_name, "${tlv.name}") == 0) { - return printwire_tlvs(tlv_name, &msg, &len, print_tlvs_${tlv.name}, ARRAY_SIZE(print_tlvs_${tlv.name})); - } + if (strcmp(tlv_name, "${tlv.name}") == 0) + return printwire_${tlv.name}(tlv_name, &msg, &len); % endfor return false; }