summaryrefslogtreecommitdiff
path: root/src/network.c
diff options
context:
space:
mode:
authorJukka Rissanen <jukka.rissanen@linux.intel.com>2011-06-22 13:37:45 +0300
committerSamuel Ortiz <sameo@linux.intel.com>2011-06-27 16:15:08 +0200
commit3d761a0d18626e1ac8610a73d1cccf74af8988b2 (patch)
treee458dfff9c50fd83831d83fff0832f456e8c0ff4 /src/network.c
parent84a739d0082b89efa8cfbf376abe17937e4bc843 (diff)
downloadconnman-3d761a0d18626e1ac8610a73d1cccf74af8988b2.tar.gz
connman-3d761a0d18626e1ac8610a73d1cccf74af8988b2.tar.bz2
connman-3d761a0d18626e1ac8610a73d1cccf74af8988b2.zip
network: Set manual IPv6 state and gateway.
Diffstat (limited to 'src/network.c')
-rw-r--r--src/network.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/network.c b/src/network.c
index acc374f6..4abcb09a 100644
--- a/src/network.c
+++ b/src/network.c
@@ -960,6 +960,8 @@ static int manual_ipv6_set(struct connman_network *network,
struct connman_service *service;
int err;
+ DBG("network %p ipv6 %p", network, ipconfig_ipv6);
+
service = __connman_service_lookup_from_network(network);
if (service == NULL)
return -EINVAL;
@@ -971,10 +973,23 @@ static int manual_ipv6_set(struct connman_network *network,
return err;
}
- /*
- * READY state will be indicated by IPV4 setting
- * gateway will be set by IPV4 setting
- */
+ err = __connman_ipconfig_gateway_add(ipconfig_ipv6);
+ if (err < 0)
+ return err;
+
+ __connman_connection_gateway_activate(service,
+ CONNMAN_IPCONFIG_TYPE_IPV6);
+
+ __connman_device_increase_connections(network->device);
+
+ __connman_device_set_network(network->device, network);
+
+ connman_device_set_disconnected(network->device, FALSE);
+
+ network->connecting = FALSE;
+
+ __connman_service_set_ipconfig_ready(service,
+ CONNMAN_IPCONFIG_TYPE_IPV6);
return 0;
}