On Wed, 2010-07-07 at 17:16 +0800, Xu, Martin wrote:
> Hi:
> I have a workable static ipv6 support patch, please review.

Can you show how this integrates with VPN support? I'm guessing it
starts something like this...

diff --git a/plugins/openconnect.c b/plugins/openconnect.c
index 891aa87..697e1d8 100644
--- a/plugins/openconnect.c
+++ b/plugins/openconnect.c
@@ -180,10 +180,28 @@ static void openconnect_task_notify(struct connman_task 
*task,
                        connman_provider_set_string(provider, "Gateway", value);
 
                if (!strcmp(key, "INTERNAL_IP4_ADDRESS"))
-                       connman_provider_set_string(provider, "Address", value);
+                       connman_provider_set_string(provider, "IP4.Address", 
value);
 
                if (!strcmp(key, "INTERNAL_IP4_NETMASK"))
-                       connman_provider_set_string(provider, "Netmask", value);
+                       connman_provider_set_string(provider, "IP4.Netmask", 
value);
+
+               if (!strcmp(key, "INTERNAL_IP6_ADDRESS"))
+                       connman_provider_set_string(provider, "IP6.Address", 
value);
+
+               if (!strcmp(key, "INTERNAL_IP6_NETMASK"))
+                       connman_provider_set_string(provider, "IP6.Netmask", 
value);
+
+               /* FIXME: We should handle $CISCO_SPLIT_INC and $CISCO_SPLIT_EXC
+                  routing information. The SPLIT_INC variables, if present,
+                  list the routes that should be configured on the VPN and
+                  the default route should _not_ be set on the VPN connection.
+                  If there are no SPLIT_INC variables, there should be
+                  SPLIT_EXC instead -- which list the routes that should _not_
+                  be set to the VPN. But even vpnc-script doesn't handle those;
+                  it just takes the lack of any SPLIT_INC routes to mean that
+                  the default route should be set on the VPN. Nobody ever puts
+                  anything meaningful into SPLIT_EXC.
+                  $CISCO_IPV6_SPLIT_{INC,EXC} are similar. */
 
                if (!strcmp(key, "INTERNAL_IP4_DNS"))
                        connman_provider_set_string(provider, "DNS", value);
diff --git a/src/provider.c b/src/provider.c
index 81c7b4d..beb3b82 100644
--- a/src/provider.c
+++ b/src/provider.c
@@ -793,12 +793,16 @@ int connman_provider_set_string(struct connman_provider 
*provider,
        } else if (g_str_equal(key, "Gateway") == TRUE) {
                g_free(provider->element.ipv4.gateway);
                provider->element.ipv4.gateway = g_strdup(value);
-       } else if (g_str_equal(key, "Address") == TRUE) {
+       } else if (g_str_equal(key, "IP4.Address") == TRUE) {
                g_free(provider->element.ipv4.address);
                provider->element.ipv4.address = g_strdup(value);
-       } else if (g_str_equal(key, "Netmask") == TRUE) {
+       } else if (g_str_equal(key, "IP4.Netmask") == TRUE) {
                g_free(provider->element.ipv4.netmask);
                provider->element.ipv4.netmask = g_strdup(value);
+       } else if (g_str_equal(key, "IP6.Address") == TRUE) {
+               /* FIXME */
+       } else if (g_str_equal(key, "IP6.Netmask") == TRUE) {
+               /* FIXME */
        } else if (g_str_equal(key, "PAC") == TRUE) {
                g_free(provider->element.ipv4.pac);
                provider->element.ipv4.pac = g_strdup(value);

-- 
David Woodhouse                            Open Source Technology Centre
[email protected]                              Intel Corporation

_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to