From 5298369f5625fa7cab9ce742f9abbf2cdfbfea2d Mon Sep 17 00:00:00 2001 From: Saurav Babu Date: Mon, 18 Jul 2016 16:43:53 +0530 Subject: Upstream: service: Enable ipconfig only for the changed IP type When IPv6.Configuration is changed to "off" then connman starts fresh DHCP Requests for service after changing its state to Configuration. In an ideal scenario IPv4 Configurations should not be affected on changing IPv6.Configuration property. This patch only enables ipconfig for the changed IP type and leaves other IP type unchanged Change-Id: I65eacb6711314d2674e709711f432ef706167fc4 Signed-off-by: Saurav Babu --- src/service.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/service.c') diff --git a/src/service.c b/src/service.c index f77f0339..1eae3807 100755 --- a/src/service.c +++ b/src/service.c @@ -4040,9 +4040,11 @@ static DBusMessage *set_property(DBusConnection *conn, if (err < 0) { if (is_connected_state(service, state) || is_connecting_state(service, state)) { - __connman_network_enable_ipconfig(service->network, + if (type == CONNMAN_IPCONFIG_TYPE_IPV4) + __connman_network_enable_ipconfig(service->network, service->ipconfig_ipv4); - __connman_network_enable_ipconfig(service->network, + else + __connman_network_enable_ipconfig(service->network, service->ipconfig_ipv6); } @@ -4055,10 +4057,12 @@ static DBusMessage *set_property(DBusConnection *conn, ipv6_configuration_changed(service); if (is_connecting(service) || is_connected(service)) { - __connman_network_enable_ipconfig(service->network, - service->ipconfig_ipv4); - __connman_network_enable_ipconfig(service->network, - service->ipconfig_ipv6); + if (type == CONNMAN_IPCONFIG_TYPE_IPV4) + __connman_network_enable_ipconfig(service->network, + service->ipconfig_ipv4); + else + __connman_network_enable_ipconfig(service->network, + service->ipconfig_ipv6); } service_save(service); -- cgit v1.2.3