X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fmeshlink.c;h=1b65e40c3efc6c59d6e1bb2e6347096c6e7b1741;hb=f6a9eb00bab9659f28c479dc34c16dc5c28a354d;hp=d9bd0146e94cedaf4b6dc5967e28f6a4f00483c9;hpb=eba5b30f09f91d95c56efb8f1d8613152c176856;p=meshlink diff --git a/src/meshlink.c b/src/meshlink.c index d9bd0146..1b65e40c 100644 --- a/src/meshlink.c +++ b/src/meshlink.c @@ -1515,7 +1515,7 @@ meshlink_handle_t *meshlink_open_ex(const meshlink_open_params_t *params) { mesh->appname = xstrdup(params->appname); mesh->devclass = params->devclass; - mesh->discovery = true; + mesh->discovery.enabled = true; mesh->invitation_timeout = 604800; // 1 week mesh->netns = params->netns; mesh->submeshes = NULL; @@ -1556,9 +1556,6 @@ meshlink_handle_t *meshlink_open_ex(const meshlink_open_params_t *params) { pthread_mutex_init(&mesh->mutex, &attr); pthread_cond_init(&mesh->cond, NULL); - pthread_mutex_init(&mesh->discovery_mutex, NULL); - pthread_cond_init(&mesh->discovery_cond, NULL); - pthread_cond_init(&mesh->adns_cond, NULL); mesh->threadstarted = false; @@ -1693,7 +1690,7 @@ static void *meshlink_main_loop(void *arg) { #endif // HAVE_SETNS } - if(mesh->discovery) { + if(mesh->discovery.enabled) { discovery_start(mesh); } @@ -1709,7 +1706,7 @@ static void *meshlink_main_loop(void *arg) { pthread_mutex_unlock(&mesh->mutex); // Stop discovery - if(mesh->discovery) { + if(mesh->discovery.enabled) { discovery_stop(mesh); } @@ -4555,7 +4552,7 @@ void meshlink_enable_discovery(meshlink_handle_t *mesh, bool enable) { abort(); } - if(mesh->discovery == enable) { + if(mesh->discovery.enabled == enable) { goto end; } @@ -4567,7 +4564,7 @@ void meshlink_enable_discovery(meshlink_handle_t *mesh, bool enable) { } } - mesh->discovery = enable; + mesh->discovery.enabled = enable; end: pthread_mutex_unlock(&mesh->mutex); @@ -4641,6 +4638,11 @@ void meshlink_reset_timers(struct meshlink_handle *mesh) { } handle_network_change(mesh, true); + + if(mesh->discovery.enabled) { + discovery_refresh(mesh); + } + pthread_mutex_unlock(&mesh->mutex); }