From 4cca574d76767bfb9d193d6360abd5ee8946df6b Mon Sep 17 00:00:00 2001 From: Guus Sliepen Date: Sun, 12 Jul 2020 21:36:53 +0200 Subject: [PATCH] Resend mDNS packets on all known addresses if meshlink_reset_timers() is called. --- src/discovery.c | 8 ++++++++ src/discovery.h | 1 + src/meshlink.c | 5 +++++ 3 files changed, 14 insertions(+) diff --git a/src/discovery.c b/src/discovery.c index df5dda72..e0e4fb4e 100644 --- a/src/discovery.c +++ b/src/discovery.c @@ -678,3 +678,11 @@ void discovery_stop(meshlink_handle_t *mesh) { } } } + +void discovery_refresh(meshlink_handle_t *mesh) { + for(int i = 0; i < mesh->discovery_address_count; i++) { + if(mesh->discovery_addresses[i].up) { + send_mdns_packet(mesh, &mesh->discovery_addresses[i]); + } + } +} diff --git a/src/discovery.h b/src/discovery.h index 48571695..d3b8e004 100644 --- a/src/discovery.h +++ b/src/discovery.h @@ -24,5 +24,6 @@ bool discovery_start(meshlink_handle_t *mesh); void discovery_stop(meshlink_handle_t *mesh); +void discovery_refresh(meshlink_handle_t *mesh); #endif diff --git a/src/meshlink.c b/src/meshlink.c index d9bd0146..8502f434 100644 --- a/src/meshlink.c +++ b/src/meshlink.c @@ -4641,6 +4641,11 @@ void meshlink_reset_timers(struct meshlink_handle *mesh) { } handle_network_change(mesh, true); + + if(mesh->discovery) { + discovery_refresh(mesh); + } + pthread_mutex_unlock(&mesh->mutex); } -- 2.39.2