mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-20 07:34:24 +01:00
log: add easy way to log hex blobs.
Use it in one case, and also fix another logging FIXME. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
@@ -495,8 +495,9 @@ static struct io_plan *keys_exchanged(struct io_conn *conn,
|
||||
neg->their_sessionpubkey,
|
||||
sizeof(neg->their_sessionpubkey),
|
||||
&sessionkey)) {
|
||||
/* FIXME: Dump key in this case. */
|
||||
log_unusual(neg->log, "Bad sessionkey");
|
||||
log_unusual_blob(neg->log, "Bad sessionkey %s",
|
||||
neg->their_sessionpubkey,
|
||||
sizeof(neg->their_sessionpubkey));
|
||||
return io_close(conn);
|
||||
}
|
||||
|
||||
|
||||
20
daemon/log.c
20
daemon/log.c
@@ -359,6 +359,26 @@ void log_struct_(struct log *log, int level,
|
||||
tal_free(ctx);
|
||||
}
|
||||
|
||||
void log_blob_(struct log *log, enum log_level level, const char *fmt,
|
||||
size_t len, ...)
|
||||
{
|
||||
va_list ap;
|
||||
const void *blob;
|
||||
const char *hex;
|
||||
|
||||
/* Macro wrappers ensure we only have one arg. */
|
||||
va_start(ap, len);
|
||||
blob = va_arg(ap, void *);
|
||||
va_end(ap);
|
||||
|
||||
hex = tal_hexstr(log, blob, len);
|
||||
if (level == -1)
|
||||
log_add(log, fmt, hex);
|
||||
else
|
||||
log_(log, level, fmt, hex);
|
||||
tal_free(hex);
|
||||
}
|
||||
|
||||
void log_each_line_(const struct log_record *lr,
|
||||
void (*func)(unsigned int skipped,
|
||||
struct timerel time,
|
||||
|
||||
16
daemon/log.h
16
daemon/log.h
@@ -42,6 +42,22 @@ void log_(struct log *log, enum log_level level, const char *fmt, ...)
|
||||
void log_add(struct log *log, const char *fmt, ...) PRINTF_FMT(2,3);
|
||||
void logv(struct log *log, enum log_level level, const char *fmt, va_list ap);
|
||||
|
||||
void log_blob_(struct log *log, enum log_level level, const char *fmt,
|
||||
size_t len, ...)
|
||||
PRINTF_FMT(3,5);
|
||||
|
||||
/* These must have %s where the blob is to go. */
|
||||
#define log_add_blob(log, fmt, blob, len) \
|
||||
log_blob_((log), -1, (fmt), (len), (char *)(blob))
|
||||
|
||||
#define log_debug_blob(log, fmt, blob, len) \
|
||||
log_blob_((log), LOG_DBG, (fmt), (len), (char *)(blob))
|
||||
#define log_info_blob(log, fmt, blob, len) \
|
||||
log_blob_((log), LOG_INFORM, (fmt), (len), (char *)(blob))
|
||||
#define log_unusual_blob(log, fmt, blob, len) \
|
||||
log_blob_((log), LOG_UNUSUAL, (fmt), (len), (char *)(blob))
|
||||
#define log_broken_blob(log, fmt, blob, len) \
|
||||
log_blob_((log), LOG_BROKEN, (fmt), (len), (char *)(blob))
|
||||
|
||||
/* Makes sure ptr is a 'structtype', makes sure it's in loggable_structs. */
|
||||
#define log_struct_check_(log, loglevel, fmt, structtype, ptr) \
|
||||
|
||||
@@ -3197,8 +3197,9 @@ static const struct bitcoin_tx *htlc_timeout_tx(const struct peer *peer,
|
||||
static void reset_onchain_closing(struct peer *peer)
|
||||
{
|
||||
if (peer->onchain.tx) {
|
||||
/* FIXME: Log old txid */
|
||||
log_unusual(peer->log, "New anchor spend, forgetting old");
|
||||
log_unusual_struct(peer->log,
|
||||
"New anchor spend, forgetting old tx %s",
|
||||
struct sha256_double, &peer->onchain.txid);
|
||||
peer->onchain.tx = tal_free(peer->onchain.tx);
|
||||
peer->onchain.resolved = NULL;
|
||||
peer->onchain.htlcs = NULL;
|
||||
|
||||
Reference in New Issue
Block a user