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