X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fnet.c;h=9dc9598afc663ff8a08352e151bd816e2f8ad90c;hb=b2d1ccdaf1554f2f34e8acb86f89190cb93b6634;hp=6fd90e194442e9e96298825fa28083bf6cb444be;hpb=c169f4b833479afffe4a3596771c7d0617c6e7be;p=meshlink diff --git a/src/net.c b/src/net.c index 6fd90e19..9dc9598a 100644 --- a/src/net.c +++ b/src/net.c @@ -54,12 +54,16 @@ static const int default_interval = 60; void terminate_connection(meshlink_handle_t *mesh, connection_t *c, bool report) { logger(mesh, MESHLINK_INFO, "Closing connection with %s", c->name); - c->status.active = false; - if(c->node && c->node->connection == c) { + if(c->status.active && mesh->meta_status_cb) { + mesh->meta_status_cb(mesh, (meshlink_node_t *)c->node, false); + } + c->node->connection = NULL; } + c->status.active = false; + if(c->edge) { if(report) { send_del_edge(mesh, mesh->everyone, c->edge, 0);