X-Git-Url: http://git.meshlink.io/?p=meshlink;a=blobdiff_plain;f=src%2Fmeshlink.c;h=2db62ea1b01716d4563df1be696e83ba7ee4bfa0;hp=7a01bd0ffae8f921f7e3b28457e26f6198b7b6b2;hb=72a9c7ede43a275eba374a3de1ee880b93c2f328;hpb=3e671a6a114a31ca1e6bbd0d13921637ee7ce1b5 diff --git a/src/meshlink.c b/src/meshlink.c index 7a01bd0f..2db62ea1 100644 --- a/src/meshlink.c +++ b/src/meshlink.c @@ -3446,6 +3446,25 @@ size_t meshlink_channel_get_recvq(meshlink_handle_t *mesh, meshlink_channel_t *c return utcp_get_recvq(channel->c); } +void meshlink_set_node_channel_timeout(meshlink_handle_t *mesh, meshlink_node_t *node, int timeout) { + if(!mesh || !node) { + meshlink_errno = MESHLINK_EINVAL; + return; + } + + node_t *n = (node_t *)node; + + pthread_mutex_lock(&mesh->mesh_mutex); + + if(!n->utcp) { + n->utcp = utcp_init(channel_accept, channel_pre_accept, channel_send, n); + } + + utcp_set_user_timeout(n->utcp, timeout); + + pthread_mutex_unlock(&mesh->mesh_mutex); +} + void update_node_status(meshlink_handle_t *mesh, node_t *n) { if(n->status.reachable && mesh->channel_accept_cb && !n->utcp) { n->utcp = utcp_init(channel_accept, channel_pre_accept, channel_send, n);