]> git.meshlink.io Git - meshlink/blobdiff - src/meshlink.c
Properly destroy unclosed channels at meshlink_close() time.
[meshlink] / src / meshlink.c
index fce1f736ea22e0dd6ba1438ab13d24f8d622d710..21144c32ff6f58a67752e578f29bf819f8f637e1 100644 (file)
@@ -2156,7 +2156,9 @@ static ssize_t channel_recv(struct utcp_connection *connection, const void *data
                abort();
        node_t *n = channel->node;
        meshlink_handle_t *mesh = n->mesh;
-       if(channel->receive_cb)
+       if(n->status.destroyed)
+               meshlink_channel_close(mesh, channel);
+       else if(channel->receive_cb)
                channel->receive_cb(mesh, channel, data, len);
        return len;
 }