---
src/wispr.c | 26 +++++++++++++-------------
1 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/src/wispr.c b/src/wispr.c
index 1f470f7..ef0ed42 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)
--
1.7.3.4
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman