From 839fda62be8085943d217b3dc7c83e9bc3f37bda Mon Sep 17 00:00:00 2001 From: Simo Piiroinen Date: Wed, 6 Jul 2016 15:39:22 +0300 Subject: [PATCH] [modesetting] Clear timer id when network_retry timer is triggered When network_retry() timer callback gets triggered, the associated timer id delayed_network is not invalidated and usb moded can try to remove it later on - which will lead to complaints from glib being emitted to journal. Clear the timer id when the timer callback gets called. Also make sure already existing timer id is not left active when scheduling a timeout. Signed-off-by: Simo Piiroinen --- src/usb_moded-modesetting.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/usb_moded-modesetting.c b/src/usb_moded-modesetting.c index e588c21..d9c3216 100644 --- a/src/usb_moded-modesetting.c +++ b/src/usb_moded-modesetting.c @@ -43,7 +43,7 @@ #include "usb_moded-android.h" static void report_mass_storage_blocker(const char *mountpoint, int try); -guint delayed_network = 0; +static guint delayed_network = 0; int write_to_file(const char *path, const char *text) { @@ -88,6 +88,7 @@ int write_to_file(const char *path, const char *text) static gboolean network_retry(gpointer data) { + delayed_network = 0; usb_network_up(data); return(FALSE); } @@ -399,6 +400,8 @@ int set_dynamic_mode(void) if(network != 0 && data->network) { log_debug("Retry setting up the network later\n"); + if(delayed_network) + g_source_remove(delayed_network); delayed_network = g_timeout_add_seconds(3, network_retry, data); }