From 79b5663db79a18a33575f2048466f11765452adc Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 6 Sep 2016 13:47:33 +0930 Subject: [PATCH] routing: don't coredump on routes to neighbors. Signed-off-by: Rusty Russell --- daemon/routing.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/daemon/routing.c b/daemon/routing.c index 1c7a37582..8dec09a09 100644 --- a/daemon/routing.c +++ b/daemon/routing.c @@ -321,18 +321,20 @@ struct peer *find_route(struct lightningd_state *dstate, msatoshi += *fee; log_info(dstate->base_log, "find_route:"); log_add_struct(dstate->base_log, "via %s", struct pubkey, first->id); - for (i = 0; i < best; i++) { - log_add_struct(dstate->base_log, " %s", - struct pubkey, &(*route)[i]->dst->id); - log_add(dstate->base_log, "(%i+%i=%"PRIu64")", - (*route)[i]->base_fee, - (*route)[i]->proportional_fee, - connection_fee((*route)[i], msatoshi)); - msatoshi -= connection_fee((*route)[i], msatoshi); + /* If there are intermidiaries, dump them, and total fees. */ + if (best != 0) { + for (i = 0; i < best; i++) { + log_add_struct(dstate->base_log, " %s", + struct pubkey, &(*route)[i]->dst->id); + log_add(dstate->base_log, "(%i+%i=%"PRIu64")", + (*route)[i]->base_fee, + (*route)[i]->proportional_fee, + connection_fee((*route)[i], msatoshi)); + msatoshi -= connection_fee((*route)[i], msatoshi); + } + log_add(dstate->base_log, "=%"PRIi64"(%+"PRIi64")", + (*route)[best-1]->dst->bfg[best-1].total, *fee); } - log_add(dstate->base_log, "=%"PRIi64"(%+"PRIi64")", - (*route)[best-1]->dst->bfg[best-1].total, *fee); - return first; }