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,
|
neg->their_sessionpubkey,
|
||||||
sizeof(neg->their_sessionpubkey),
|
sizeof(neg->their_sessionpubkey),
|
||||||
&sessionkey)) {
|
&sessionkey)) {
|
||||||
/* FIXME: Dump key in this case. */
|
log_unusual_blob(neg->log, "Bad sessionkey %s",
|
||||||
log_unusual(neg->log, "Bad sessionkey");
|
neg->their_sessionpubkey,
|
||||||
|
sizeof(neg->their_sessionpubkey));
|
||||||
return io_close(conn);
|
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);
|
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 log_each_line_(const struct log_record *lr,
|
||||||
void (*func)(unsigned int skipped,
|
void (*func)(unsigned int skipped,
|
||||||
struct timerel time,
|
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 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 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. */
|
/* Makes sure ptr is a 'structtype', makes sure it's in loggable_structs. */
|
||||||
#define log_struct_check_(log, loglevel, fmt, structtype, ptr) \
|
#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)
|
static void reset_onchain_closing(struct peer *peer)
|
||||||
{
|
{
|
||||||
if (peer->onchain.tx) {
|
if (peer->onchain.tx) {
|
||||||
/* FIXME: Log old txid */
|
log_unusual_struct(peer->log,
|
||||||
log_unusual(peer->log, "New anchor spend, forgetting old");
|
"New anchor spend, forgetting old tx %s",
|
||||||
|
struct sha256_double, &peer->onchain.txid);
|
||||||
peer->onchain.tx = tal_free(peer->onchain.tx);
|
peer->onchain.tx = tal_free(peer->onchain.tx);
|
||||||
peer->onchain.resolved = NULL;
|
peer->onchain.resolved = NULL;
|
||||||
peer->onchain.htlcs = NULL;
|
peer->onchain.htlcs = NULL;
|
||||||
|
|||||||
Reference in New Issue
Block a user