From 05f526ba37fee56db7319e5dd3c2e9d6b5d88ea4 Mon Sep 17 00:00:00 2001 From: Tomasz Bursztyka Date: Mon, 17 Oct 2011 16:51:31 +0300 Subject: [PATCH] wispr: wispr_start will always re-start a new context --- src/wispr.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/wispr.c b/src/wispr.c index 7cc2b99..d97aaeb 100644 --- a/src/wispr.c +++ b/src/wispr.c @@ -713,23 +713,23 @@ int __connman_wispr_start(struct connman_service *service, else return -EINVAL; - if (wp_context == NULL) { - wp_context = g_try_new0(struct connman_wispr_portal_context, 1); - if (wp_context == NULL) - return -ENOMEM; + /* If there is already an existing context, we wipe it */ + if (wp_context != NULL) + free_connman_wispr_portal_context(wp_context); - wp_context->service = service; - wp_context->type = type; + wp_context = g_try_new0(struct connman_wispr_portal_context, 1); + if (wp_context == NULL) + return -ENOMEM; - if (type == CONNMAN_IPCONFIG_TYPE_IPV4) - wispr_portal->ipv4_context = wp_context; - else - wispr_portal->ipv6_context = wp_context; + wp_context->service = service; + wp_context->type = type; - return wispr_portal_detect(wp_context); - } + if (type == CONNMAN_IPCONFIG_TYPE_IPV4) + wispr_portal->ipv4_context = wp_context; + else + wispr_portal->ipv6_context = wp_context; - return 0; + return wispr_portal_detect(wp_context); } void __connman_wispr_stop(struct connman_service *service) -- 2.7.4