From 9842e32e060ceeb9522f0c858764e324d19fc0e7 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 20 Feb 2018 20:21:44 +1030 Subject: [PATCH] lightningd: expose internal error information. In #1018 we got no information, except "Internal error". At least if we tell the other side what went wrong, we're more likely to get an answer. Signed-off-by: Rusty Russell --- lightningd/channel.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lightningd/channel.c b/lightningd/channel.c index 3b3a06da4..0ee484429 100644 --- a/lightningd/channel.c +++ b/lightningd/channel.c @@ -297,14 +297,15 @@ void channel_fail_permanent(struct channel *channel, const char *fmt, ...) void channel_internal_error(struct channel *channel, const char *fmt, ...) { va_list ap; + char *why; va_start(ap, fmt); - log_broken(channel->log, "Peer internal error %s: ", - channel_state_name(channel)); - logv_add(channel->log, fmt, ap); + why = tal_vfmt(channel, fmt, ap); va_end(ap); - channel_fail_permanent(channel, "Internal error"); + log_broken(channel->log, "Peer internal error %s: %s", + channel_state_name(channel), why); + channel_fail_permanent(channel, "Internal error: %s", why); } void channel_fail_transient(struct channel *channel, const char *fmt, ...)