From 2c33cf2b3351ab67e7376b926b834912ef3adbe6 Mon Sep 17 00:00:00 2001 From: Andrew Zaborowski Date: Wed, 1 May 2019 17:32:32 +0200 Subject: [PATCH] scan: Reset sp.timeout in destroy callback --- src/scan.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/scan.c b/src/scan.c index 8cb764c0..5a603495 100644 --- a/src/scan.c +++ b/src/scan.c @@ -690,7 +690,6 @@ bool scan_periodic_stop(uint32_t ifindex) if (sc->sp.timeout) { l_timeout_remove(sc->sp.timeout); - sc->sp.timeout = NULL; } sc->sp.interval = 0; @@ -719,6 +718,13 @@ static void scan_periodic_timeout(struct l_timeout *timeout, void *user_data) start_next_scan_request(sc); } +static void scan_periodic_timeout_destroy(void *user_data) +{ + struct scan_context *sc = user_data; + + sc->sp.timeout = NULL; +} + static void scan_periodic_rearm(struct scan_context *sc) { l_debug("Arming periodic scan timer: %u", sc->sp.interval); @@ -727,8 +733,8 @@ static void scan_periodic_rearm(struct scan_context *sc) l_timeout_modify(sc->sp.timeout, sc->sp.interval); else sc->sp.timeout = l_timeout_create(sc->sp.interval, - scan_periodic_timeout, sc, NULL); - + scan_periodic_timeout, sc, + scan_periodic_timeout_destroy); sc->sp.rearm = false; }