diff options
-rw-r--r-- | src/6to4.c | 20 | ||||
-rw-r--r-- | src/connman.h | 1 |
2 files changed, 21 insertions, 0 deletions
@@ -540,3 +540,23 @@ void __connman_6to4_remove(struct connman_ipconfig *ip4config) if (tunnel_created) tunnel_destroy(); } + +int __connman_6to4_check(struct connman_ipconfig *ip4config) +{ + const char *address; + + if (ip4config == NULL || tunnel_created == 0 || + tunnel_pending == 1) + return -1; + + DBG("tunnel ip address %s", tunnel_ip_address); + + address = __connman_ipconfig_get_local(ip4config); + if (address == NULL) + return -1; + + if (g_strcmp0(address, tunnel_ip_address) == 0) + return 1; + + return 0; +} diff --git a/src/connman.h b/src/connman.h index 1ca73ed0..d466b216 100644 --- a/src/connman.h +++ b/src/connman.h @@ -648,3 +648,4 @@ void __connman_dnsproxy_flush(void); int __connman_6to4_probe(struct connman_service *service); void __connman_6to4_remove(struct connman_ipconfig *ipconfig); +int __connman_6to4_check(struct connman_ipconfig *ipconfig); |