routing: Refuse self-route

Fixes #50. Was causing a segfault because it was creating an empty route
and was trying to extract the first hop as next hop. Routes through self
can still be created manually, but `sendpay` would still refuse to act
on them due to the missing self-link.
This commit is contained in:
Christian Decker 2016-10-23 11:57:50 +02:00
parent 144c40afd0
commit a97d301155
1 changed files with 5 additions and 0 deletions

View File

@ -289,10 +289,15 @@ struct peer *find_route(struct lightningd_state *dstate,
* at the end, and need to derive how much we need to send. */
dst = get_node(dstate, &dstate->id);
src = get_node(dstate, to);
if (!src) {
log_info_struct(dstate->base_log, "find_route: cannot find %s",
struct pubkey, to);
return NULL;
} else if (dst == src) {
log_info_struct(dstate->base_log, "find_route: this is %s, refusing to create empty route",
struct pubkey, to);
return NULL;
}
/* Reset all the information. */