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