From 9327aa1df4bec4170d5288eab79e6c4e4ef488c2 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 20 Jun 2017 10:09:17 +0930 Subject: [PATCH] lightningd: fix logging of peer death. We used level -1 to mean "append to log", but that doesn't actually work, and results in an assert if we try to prune the logs: lightningd: daemon/pseudorand.c:36: pseudorand: Assertion `max' failed. Expose logv_add and use that. Signed-off-by: Rusty Russell --- daemon/log.c | 4 ++-- daemon/log.h | 1 + lightningd/peer_control.c | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/daemon/log.c b/daemon/log.c index 83d2446f8..a8f0fe910 100644 --- a/daemon/log.c +++ b/daemon/log.c @@ -235,7 +235,7 @@ void log_io(struct log *log, bool in, const void *data, size_t len) errno = save_errno; } -static void do_log_add(struct log *log, const char *fmt, va_list ap) +void logv_add(struct log *log, const char *fmt, va_list ap) { struct log_entry *l = list_tail(&log->lr->log, struct log_entry, list); size_t oldlen = strlen(l->log); @@ -266,7 +266,7 @@ void log_add(struct log *log, const char *fmt, ...) va_list ap; va_start(ap, fmt); - do_log_add(log, fmt, ap); + logv_add(log, fmt, ap); va_end(ap); } diff --git a/daemon/log.h b/daemon/log.h index e56144e61..1b36f358d 100644 --- a/daemon/log.h +++ b/daemon/log.h @@ -42,6 +42,7 @@ void log_(struct log *log, enum log_level level, const char *fmt, ...) PRINTF_FMT(3,4); 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_add(struct log *log, const char *fmt, va_list ap); void log_blob_(struct log *log, int level, const char *fmt, size_t len, ...) diff --git a/lightningd/peer_control.c b/lightningd/peer_control.c index 3fc7ed2a5..7b0b327cd 100644 --- a/lightningd/peer_control.c +++ b/lightningd/peer_control.c @@ -112,7 +112,7 @@ void peer_fail(struct peer *peer, const char *fmt, ...) va_start(ap, fmt); log_info(peer->log, "Peer failure in %s: ", peer_state_name(peer->state)); - logv(peer->log, -1, fmt, ap); + logv_add(peer->log, fmt, ap); va_end(ap); /* If we haven't reached awaiting locked, we don't need to reconnect */