service: Return 6to4 tunnel status to dbus caller.
authorJukka Rissanen <jukka.rissanen@nokia.com>
Fri, 25 Mar 2011 13:03:19 +0000 (15:03 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Fri, 25 Mar 2011 13:46:56 +0000 (14:46 +0100)
src/connman.h
src/ipconfig.c
src/service.c

index d466b21..01dca1b 100644 (file)
@@ -256,7 +256,8 @@ void __connman_ipconfig_append_ipv4(struct connman_ipconfig *ipconfig,
 void __connman_ipconfig_append_ipv4config(struct connman_ipconfig *ipconfig,
                                                        DBusMessageIter *iter);
 void __connman_ipconfig_append_ipv6(struct connman_ipconfig *ipconfig,
-                                                       DBusMessageIter *iter);
+                                       DBusMessageIter *iter,
+                                       struct connman_ipconfig *ip4config);
 void __connman_ipconfig_append_ipv6config(struct connman_ipconfig *ipconfig,
                                                        DBusMessageIter *iter);
 int __connman_ipconfig_set_config(struct connman_ipconfig *ipconfig,
index 0599a73..22dd03b 100644 (file)
@@ -1701,7 +1701,8 @@ void __connman_ipconfig_append_ipv4(struct connman_ipconfig *ipconfig,
 }
 
 void __connman_ipconfig_append_ipv6(struct connman_ipconfig *ipconfig,
-                                                       DBusMessageIter *iter)
+                                       DBusMessageIter *iter,
+                                       struct connman_ipconfig *ipconfig_ipv4)
 {
        const char *str, *privacy;
 
@@ -1714,6 +1715,12 @@ void __connman_ipconfig_append_ipv6(struct connman_ipconfig *ipconfig,
        if (str == NULL)
                return;
 
+       if (ipconfig_ipv4 != NULL &&
+                       ipconfig->method == CONNMAN_IPCONFIG_METHOD_AUTO) {
+               if (__connman_6to4_check(ipconfig_ipv4) == 1)
+                       str = "6to4";
+       }
+
        connman_dbus_dict_append_basic(iter, "Method", DBUS_TYPE_STRING, &str);
 
        if (ipconfig->system == NULL)
index b147551..ae1f6fd 100644 (file)
@@ -1002,7 +1002,8 @@ static void append_ipv6(DBusMessageIter *iter, void *user_data)
                return;
 
        if (service->ipconfig_ipv6 != NULL)
-               __connman_ipconfig_append_ipv6(service->ipconfig_ipv6, iter);
+               __connman_ipconfig_append_ipv6(service->ipconfig_ipv6, iter,
+                                               service->ipconfig_ipv4);
 }
 
 static void append_ipv4config(DBusMessageIter *iter, void *user_data)