X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fmeshlink.c;h=1dbefd0eded7be6aa0b60a6caeb329efb3f6c0cf;hb=2fd608c4111ef4d48a649401d918f5981856cc44;hp=8ec207842c6732bee32b25914db502c1174863d5;hpb=ecfe7cbbe08dc99ba6f329ad66bb8ee09ce9539b;p=meshlink diff --git a/src/meshlink.c b/src/meshlink.c index 8ec20784..1dbefd0e 100644 --- a/src/meshlink.c +++ b/src/meshlink.c @@ -1674,6 +1674,17 @@ void meshlink_set_receive_cb(meshlink_handle_t *mesh, meshlink_receive_cb_t cb) pthread_mutex_unlock(&(mesh->mesh_mutex)); } +void meshlink_set_connection_try_cb(meshlink_handle_t *mesh, meshlink_connection_try_cb_t cb) { + if(!mesh) { + meshlink_errno = MESHLINK_EINVAL; + return; + } + + pthread_mutex_lock(&(mesh->mesh_mutex)); + mesh->connection_try_cb = cb; + pthread_mutex_unlock(&(mesh->mesh_mutex)); +} + void meshlink_set_node_status_cb(meshlink_handle_t *mesh, meshlink_node_status_cb_t cb) { if(!mesh) { meshlink_errno = MESHLINK_EINVAL; @@ -1852,6 +1863,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;