diff --git a/connectd/connectd.c b/connectd/connectd.c index dc0c2f798..cb19a78fa 100644 --- a/connectd/connectd.c +++ b/connectd/connectd.c @@ -311,7 +311,7 @@ static struct peer *new_peer(struct daemon *daemon, peer->peer_in = NULL; peer->sent_to_peer = NULL; peer->urgent = false; - peer->told_to_close = false; + peer->ready_to_die = false; peer->peer_outq = msg_queue_new(peer, false); #if DEVELOPER @@ -1793,7 +1793,7 @@ static void try_connect_peer(struct daemon *daemon, /* If it's exiting now, we've raced: reconnect after */ if (tal_count(existing->subds) != 0 && existing->to_peer - && !existing->told_to_close) + && !existing->ready_to_die) return; } @@ -1893,7 +1893,7 @@ void peer_conn_closed(struct peer *peer) /* These should be closed already! */ assert(!peer->subds); assert(!peer->to_peer); - assert(peer->told_to_close); + assert(peer->ready_to_die); /* Tell gossipd to stop asking this peer gossip queries */ daemon_conn_send(peer->daemon->gossipd, @@ -1930,13 +1930,13 @@ static void cleanup_dead_peer(struct daemon *daemon, const struct node_id *id) close_peer_conn(peer); } -/* lightningd tells us a peer has disconnected. */ -static void peer_disconnected(struct daemon *daemon, const u8 *msg) +/* lightningd tells us a peer should be disconnected. */ +static void peer_discard(struct daemon *daemon, const u8 *msg) { struct node_id id; - if (!fromwire_connectd_peer_disconnected(msg, &id)) - master_badmsg(WIRE_CONNECTD_PEER_DISCONNECTED, msg); + if (!fromwire_connectd_discard_peer(msg, &id)) + master_badmsg(WIRE_CONNECTD_DISCARD_PEER, msg); cleanup_dead_peer(daemon, &id); } @@ -2001,8 +2001,8 @@ static struct io_plan *recv_req(struct io_conn *conn, connect_to_peer(daemon, msg); goto out; - case WIRE_CONNECTD_PEER_DISCONNECTED: - peer_disconnected(daemon, msg); + case WIRE_CONNECTD_DISCARD_PEER: + peer_discard(daemon, msg); goto out; case WIRE_CONNECTD_PEER_FINAL_MSG: diff --git a/connectd/connectd.h b/connectd/connectd.h index e75337f34..ce488a907 100644 --- a/connectd/connectd.h +++ b/connectd/connectd.h @@ -59,8 +59,9 @@ struct peer { /* Final message to send to peer (and hangup) */ u8 *final_msg; - /* Set when we want to close. */ - bool told_to_close; + /* Set once lightningd says it's OK to close (subd tells it + * it's done). */ + bool ready_to_die; /* When socket has Nagle overridden */ bool urgent; diff --git a/connectd/connectd_wire.csv b/connectd/connectd_wire.csv index de580c0e3..577c882cd 100644 --- a/connectd/connectd_wire.csv +++ b/connectd/connectd_wire.csv @@ -71,9 +71,9 @@ msgdata,connectd_peer_connected,incoming,bool, msgdata,connectd_peer_connected,flen,u16, msgdata,connectd_peer_connected,features,u8,flen -# master -> connectd: peer has disconnected. -msgtype,connectd_peer_disconnected,2015 -msgdata,connectd_peer_disconnected,id,node_id, +# master -> connectd: peer no longer wanted, you can disconnect. +msgtype,connectd_discard_peer,2015 +msgdata,connectd_discard_peer,id,node_id, # master -> connectd: give message to peer and disconnect. msgtype,connectd_peer_final_msg,2003 diff --git a/connectd/multiplex.c b/connectd/multiplex.c index 91f221b56..49198176d 100644 --- a/connectd/multiplex.c +++ b/connectd/multiplex.c @@ -715,7 +715,7 @@ static struct io_plan *read_body_from_peer_done(struct io_conn *peer_conn, return read_hdr_from_peer(peer_conn, peer); /* Don't process packets while we're closing */ - if (peer->told_to_close) + if (peer->ready_to_die) return read_hdr_from_peer(peer_conn, peer); /* If we swallow this, just try again. */ @@ -825,14 +825,14 @@ static void destroy_subd(struct subd *subd) io_wake(&peer->peer_in); /* If no peer, finally time to close */ - if (!peer->to_peer && peer->told_to_close) + if (!peer->to_peer && peer->ready_to_die) peer_conn_closed(peer); } void close_peer_conn(struct peer *peer) { /* Make write_to_peer do flush after writing */ - peer->told_to_close = true; + peer->ready_to_die = true; /* Already dead? */ if (!peer->subds && !peer->to_peer) { @@ -883,7 +883,7 @@ static void destroy_peer_conn(struct io_conn *peer_conn, struct peer *peer) return; } - if (peer->told_to_close) + if (peer->ready_to_die) peer_conn_closed(peer); } @@ -905,7 +905,7 @@ struct io_plan *multiplex_peer_setup(struct io_conn *peer_conn, void multiplex_final_msg(struct peer *peer, const u8 *final_msg TAKES) { - peer->told_to_close = true; + peer->ready_to_die = true; peer->final_msg = tal_dup_talarr(peer, u8, final_msg); if (!peer->subds) io_wake(peer->peer_outq); diff --git a/lightningd/channel.c b/lightningd/channel.c index 6976a83cd..b5b1fa2ad 100644 --- a/lightningd/channel.c +++ b/lightningd/channel.c @@ -42,7 +42,7 @@ void channel_set_owner(struct channel *channel, struct subd *owner) channel->peer->connected = false; if (channel->peer->ld->connectd) { u8 *msg; - msg = towire_connectd_peer_disconnected( + msg = towire_connectd_discard_peer( NULL, &channel->peer->id); subd_send_msg(channel->peer->ld->connectd, diff --git a/lightningd/connect_control.c b/lightningd/connect_control.c index a45a1cd3e..321f9c2a2 100644 --- a/lightningd/connect_control.c +++ b/lightningd/connect_control.c @@ -413,7 +413,7 @@ static unsigned connectd_msg(struct subd *connectd, const u8 *msg, const int *fd case WIRE_CONNECTD_INIT: case WIRE_CONNECTD_ACTIVATE: case WIRE_CONNECTD_CONNECT_TO_PEER: - case WIRE_CONNECTD_PEER_DISCONNECTED: + case WIRE_CONNECTD_DISCARD_PEER: case WIRE_CONNECTD_DEV_MEMLEAK: case WIRE_CONNECTD_PEER_FINAL_MSG: case WIRE_CONNECTD_PING: diff --git a/lightningd/opening_common.c b/lightningd/opening_common.c index 542dfe2d2..f57c35572 100644 --- a/lightningd/opening_common.c +++ b/lightningd/opening_common.c @@ -103,7 +103,7 @@ void uncommitted_channel_disconnect(struct uncommitted_channel *uc, enum log_level level, const char *desc) { - u8 *msg = towire_connectd_peer_disconnected(tmpctx, &uc->peer->id); + u8 *msg = towire_connectd_discard_peer(tmpctx, &uc->peer->id); log_(uc->log, level, NULL, false, "%s", desc); /* NULL when we're shutting down */ if (uc->peer->ld->connectd) diff --git a/wallet/test/run-wallet.c b/wallet/test/run-wallet.c index 71280026a..dd3d5ce66 100644 --- a/wallet/test/run-wallet.c +++ b/wallet/test/run-wallet.c @@ -720,9 +720,9 @@ u8 *towire_channeld_offer_htlc(const tal_t *ctx UNNEEDED, struct amount_msat amo /* Generated stub for towire_channeld_sending_commitsig_reply */ u8 *towire_channeld_sending_commitsig_reply(const tal_t *ctx UNNEEDED) { fprintf(stderr, "towire_channeld_sending_commitsig_reply called!\n"); abort(); } -/* Generated stub for towire_connectd_peer_disconnected */ -u8 *towire_connectd_peer_disconnected(const tal_t *ctx UNNEEDED, const struct node_id *id UNNEEDED) -{ fprintf(stderr, "towire_connectd_peer_disconnected called!\n"); abort(); } +/* Generated stub for towire_connectd_discard_peer */ +u8 *towire_connectd_discard_peer(const tal_t *ctx UNNEEDED, const struct node_id *id UNNEEDED) +{ fprintf(stderr, "towire_connectd_discard_peer called!\n"); abort(); } /* Generated stub for towire_connectd_peer_final_msg */ u8 *towire_connectd_peer_final_msg(const tal_t *ctx UNNEEDED, const struct node_id *id UNNEEDED, const u8 *msg UNNEEDED) { fprintf(stderr, "towire_connectd_peer_final_msg called!\n"); abort(); }