X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fmeshlink.c;h=cd23771ab70697f565df0f93b77b26d8089c6d54;hb=1d7554c7b8c632adf86492be9dc7afecb49bca5d;hp=474cef0808a12ab9c6c05e7e030f96f21343726d;hpb=ec02aca3d7888f072c5c0d52ba6b5c37ed42b69e;p=meshlink diff --git a/src/meshlink.c b/src/meshlink.c index 474cef08..cd23771a 100644 --- a/src/meshlink.c +++ b/src/meshlink.c @@ -1852,6 +1852,20 @@ meshlink_node_t *meshlink_get_node(meshlink_handle_t *mesh, const char *name) { return node; } +meshlink_submesh_t *meshlink_get_submesh(meshlink_handle_t *mesh, const char *name) { + if(!mesh || !name) { + meshlink_errno = MESHLINK_EINVAL; + return NULL; + } + + meshlink_submesh_t *submesh = NULL; + + pthread_mutex_lock(&(mesh->mesh_mutex)); + submesh = (meshlink_submesh_t *)lookup_submesh(mesh, name); + pthread_mutex_unlock(&(mesh->mesh_mutex)); + return submesh; +} + meshlink_node_t **meshlink_get_all_nodes(meshlink_handle_t *mesh, meshlink_node_t **nodes, size_t *nmemb) { if(!mesh || !nmemb || (*nmemb && !nodes)) { meshlink_errno = MESHLINK_EINVAL; @@ -3159,6 +3173,24 @@ uint32_t meshlink_channel_get_flags(meshlink_handle_t *mesh, meshlink_channel_t return channel->c->flags; } +size_t meshlink_channel_get_sendq(meshlink_handle_t *mesh, meshlink_channel_t *channel) { + if(!mesh || !channel) { + meshlink_errno = MESHLINK_EINVAL; + return -1; + } + + return utcp_get_sendq(channel->c); +} + +size_t meshlink_channel_get_recvq(meshlink_handle_t *mesh, meshlink_channel_t *channel) { + if(!mesh || !channel) { + meshlink_errno = MESHLINK_EINVAL; + return -1; + } + + return utcp_get_recvq(channel->c); +} + 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);