mirror of
https://github.com/ElementsProject/lightning.git
synced 2024-11-19 09:54:16 +01:00
gossipd: fix case where we get an update on a pruned channel.
We discarded it; we should populate it. The comment is wrong, since local_add_channel() doesn't add public channels, and we test that above. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
961321a6d8
commit
1e4959af1f
@ -892,21 +892,19 @@ void handle_channel_update(struct routing_state *rstate, const u8 *update)
|
||||
|
||||
c = chan->connections[direction];
|
||||
|
||||
/* When we local_add_channel(), we only half-populate, so this case
|
||||
* is possible. */
|
||||
/* Channel could have been pruned: re-add */
|
||||
if (!c) {
|
||||
SUPERVERBOSE("Ignoring update for unknown half channel %s",
|
||||
type_to_string(trc, struct short_channel_id,
|
||||
&short_channel_id));
|
||||
c = new_node_connection(rstate, chan,
|
||||
chan->nodes[direction],
|
||||
chan->nodes[!direction],
|
||||
direction);
|
||||
} else if (c->last_timestamp >= timestamp) {
|
||||
SUPERVERBOSE("Ignoring outdated update.");
|
||||
tal_free(tmpctx);
|
||||
return;
|
||||
}
|
||||
|
||||
if (c->last_timestamp >= timestamp) {
|
||||
SUPERVERBOSE("Ignoring outdated update.");
|
||||
tal_free(tmpctx);
|
||||
return;
|
||||
} else if (!check_channel_update(&c->src->id, &signature, serialized)) {
|
||||
if (!check_channel_update(&c->src->id, &signature, serialized)) {
|
||||
status_trace("Signature verification failed.");
|
||||
tal_free(tmpctx);
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user