Browse Source
$ ./devtools/decodemsg 00110000000000000000000000000000000000000000000000000000000000000000000e496e7465726e616c206572726f72 WIRE_ERROR: channel_id=0000000000000000000000000000000000000000000000000000000000000000 data=[Internal error] Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>ppa-0.6.1
Rusty Russell
7 years ago
4 changed files with 111 additions and 9 deletions
@ -0,0 +1,9 @@ |
|||
#include <common/utils.h> |
|||
#include <devtools/gen_print_wire.h> |
|||
|
|||
int main(int argc, char *argv[]) |
|||
{ |
|||
u8 *m = tal_hexdata(NULL, argv[1], strlen(argv[1])); |
|||
print_message(m); |
|||
return 0; |
|||
} |
@ -0,0 +1,60 @@ |
|||
#include <common/type_to_string.h> |
|||
#include <devtools/print_wire.h> |
|||
#include <inttypes.h> |
|||
#include <stdio.h> |
|||
|
|||
void printwire_u8(const u8 *v) |
|||
{ |
|||
printf("%u", *v); |
|||
} |
|||
|
|||
void printwire_u16(const u16 *v) |
|||
{ |
|||
printf("%u", *v); |
|||
} |
|||
|
|||
void printwire_u32(const u32 *v) |
|||
{ |
|||
printf("%u", *v); |
|||
} |
|||
|
|||
void printwire_u64(const u64 *v) |
|||
{ |
|||
printf("%"PRIu64, *v); |
|||
} |
|||
|
|||
void printwire_u8_array(const u8 **cursor, size_t *plen, size_t len) |
|||
{ |
|||
printf("["); |
|||
while (len) { |
|||
u8 v = fromwire_u8(cursor, plen); |
|||
if (!*cursor) |
|||
return; |
|||
if (isprint(v)) |
|||
printf("%c", v); |
|||
else |
|||
printf("\\x%02x", v); |
|||
len--; |
|||
} |
|||
printf("]\n"); |
|||
} |
|||
|
|||
#define PRINTWIRE_TYPE_TO_STRING(T, N) \ |
|||
void printwire_##N(const T *v) \ |
|||
{ \ |
|||
const char *s = type_to_string(NULL, T, v); \ |
|||
printf("%s\n", s); \ |
|||
tal_free(s); \ |
|||
} |
|||
|
|||
#define PRINTWIRE_STRUCT_TYPE_TO_STRING(T) \ |
|||
PRINTWIRE_TYPE_TO_STRING(struct T, T) |
|||
|
|||
PRINTWIRE_STRUCT_TYPE_TO_STRING(bitcoin_blkid); |
|||
PRINTWIRE_STRUCT_TYPE_TO_STRING(bitcoin_txid); |
|||
PRINTWIRE_STRUCT_TYPE_TO_STRING(channel_id); |
|||
PRINTWIRE_STRUCT_TYPE_TO_STRING(preimage); |
|||
PRINTWIRE_STRUCT_TYPE_TO_STRING(pubkey); |
|||
PRINTWIRE_STRUCT_TYPE_TO_STRING(sha256); |
|||
PRINTWIRE_STRUCT_TYPE_TO_STRING(short_channel_id); |
|||
PRINTWIRE_TYPE_TO_STRING(secp256k1_ecdsa_signature, secp256k1_ecdsa_signature); |
@ -0,0 +1,22 @@ |
|||
#ifndef LIGHTNING_DEVTOOLS_PRINT_WIRE_H |
|||
#define LIGHTNING_DEVTOOLS_PRINT_WIRE_H |
|||
#include <bitcoin/preimage.h> |
|||
#include <bitcoin/tx.h> |
|||
#include <wire/gen_peer_wire.h> |
|||
|
|||
void printwire_u8(const u8 *v); |
|||
void printwire_u16(const u16 *v); |
|||
void printwire_u32(const u32 *v); |
|||
void printwire_u64(const u64 *v); |
|||
void printwire_u8_array(const u8 **cursor, size_t *plen, size_t len); |
|||
|
|||
void printwire_bitcoin_blkid(const struct bitcoin_blkid *bitcoin_blkid); |
|||
void printwire_bitcoin_txid(const struct bitcoin_txid *bitcoin_txid); |
|||
void printwire_channel_id(const struct channel_id *channel_id); |
|||
void printwire_preimage(const struct preimage *preimage); |
|||
void printwire_pubkey(const struct pubkey *pubkey); |
|||
void printwire_secp256k1_ecdsa_signature(const secp256k1_ecdsa_signature *); |
|||
void printwire_sha256(const struct sha256 *sha256); |
|||
void printwire_short_channel_id(const struct short_channel_id *short_channel_id); |
|||
|
|||
#endif /* LIGHTNING_DEVTOOLS_PRINT_WIRE_H */ |
Loading…
Reference in new issue