mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-24 01:24:26 +01:00
lightningd: centralize refcounting behaviour for peers.
It's mildly neater this way. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
@@ -116,7 +116,7 @@ struct peer *new_peer(struct lightningd *ld, u64 dbid,
|
||||
return peer;
|
||||
}
|
||||
|
||||
void delete_peer(struct peer *peer)
|
||||
static void delete_peer(struct peer *peer)
|
||||
{
|
||||
assert(list_empty(&peer->channels));
|
||||
assert(!peer->uncommitted_channel);
|
||||
@@ -127,6 +127,16 @@ void delete_peer(struct peer *peer)
|
||||
tal_free(peer);
|
||||
}
|
||||
|
||||
/* Last one out deletes peer. */
|
||||
void maybe_delete_peer(struct peer *peer)
|
||||
{
|
||||
if (peer->uncommitted_channel)
|
||||
return;
|
||||
if (!list_empty(&peer->channels))
|
||||
return;
|
||||
delete_peer(peer);
|
||||
}
|
||||
|
||||
struct peer *find_peer_by_dbid(struct lightningd *ld, u64 dbid)
|
||||
{
|
||||
struct peer *p;
|
||||
|
||||
Reference in New Issue
Block a user