summaryrefslogtreecommitdiff
path: root/src/network.c
diff options
context:
space:
mode:
authorJukka Rissanen <jukka.rissanen@linux.intel.com>2012-01-05 13:38:14 +0200
committerDaniel Wagner <daniel.wagner@bmw-carit.de>2012-01-05 13:17:26 +0100
commit53f38ce0bc6505c8b8a7342b0243df442b7db5a4 (patch)
treeed3550a683f4f77ab7936374f4464ce19d1fbc5d /src/network.c
parent5f5b3609c4f9884954623d7e6bf2ae1ae7096637 (diff)
downloadconnman-53f38ce0bc6505c8b8a7342b0243df442b7db5a4.tar.gz
connman-53f38ce0bc6505c8b8a7342b0243df442b7db5a4.tar.bz2
connman-53f38ce0bc6505c8b8a7342b0243df442b7db5a4.zip
dhcpv6: Release message implemented.
Diffstat (limited to 'src/network.c')
-rw-r--r--src/network.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/network.c b/src/network.c
index bff0e7e2..2637ba5d 100644
--- a/src/network.c
+++ b/src/network.c
@@ -974,6 +974,21 @@ static void stop_dhcpv6(struct connman_network *network)
__connman_dhcpv6_stop(network);
}
+static void dhcpv6_release_callback(struct connman_network *network,
+ connman_bool_t success)
+{
+ DBG("success %d", success);
+
+ stop_dhcpv6(network);
+}
+
+static void release_dhcpv6(struct connman_network *network)
+{
+ if (__connman_dhcpv6_start_release(network,
+ dhcpv6_release_callback) < 0)
+ stop_dhcpv6(network);
+}
+
static void dhcpv6_info_callback(struct connman_network *network,
connman_bool_t success)
{
@@ -1211,7 +1226,7 @@ static gboolean set_connected(gpointer user_data)
break;
case CONNMAN_IPCONFIG_METHOD_DHCP:
case CONNMAN_IPCONFIG_METHOD_AUTO:
- stop_dhcpv6(network);
+ release_dhcpv6(network);
break;
}