From: Patrik Flykt <[email protected]>
Keep track of the zero-second no proxy callback timeout and remove
it when freeing up the WISPr context.
---
src/wispr.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/wispr.c b/src/wispr.c
index 7ee5188..eede9ee 100644
--- a/src/wispr.c
+++ b/src/wispr.c
@@ -83,6 +83,8 @@ struct connman_wispr_portal_context {
enum connman_wispr_result wispr_result;
GSList *route_list;
+
+ guint timeout;
};
struct connman_wispr_portal {
@@ -174,6 +176,9 @@ static void free_connman_wispr_portal_context(struct
connman_wispr_portal_contex
if (wp_context->request_id > 0)
g_web_cancel_request(wp_context->web, wp_context->request_id);
+ if (wp_context->timeout > 0)
+ g_source_remove(wp_context->timeout);
+
if (wp_context->web != NULL)
g_web_unref(wp_context->web);
@@ -789,6 +794,7 @@ static gboolean no_proxy_callback(gpointer user_data)
proxy_callback("DIRECT", wp_context);
+ wp_context->timeout = 0;
return FALSE;
}
@@ -876,7 +882,8 @@ static int wispr_portal_detect(struct
connman_wispr_portal_context *wp_context)
free_connman_wispr_portal_context(wp_context);
}
} else {
- g_timeout_add_seconds(0, no_proxy_callback, wp_context);
+ wp_context->timeout =
+ g_timeout_add_seconds(0, no_proxy_callback, wp_context);
}
done:
--
1.7.10.4
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman