mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-03-15 20:09:18 +01:00
connectd: fix confusing names.
The message from lightningd simply acknowleges that we are allowed to discard the peer (because no subdaemons are talking to it anymore). This difference becomes more stark once connectd holds on to idle peers. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
0cba062318
commit
16e9ba0361
8 changed files with 26 additions and 25 deletions
|
@ -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:
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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(); }
|
||||
|
|
Loading…
Add table
Reference in a new issue