summaryrefslogtreecommitdiff
path: root/src/network.c
diff options
context:
space:
mode:
authorJukka Rissanen <jukka.rissanen@linux.intel.com>2011-08-26 14:43:10 +0300
committerSamuel Ortiz <sameo@linux.intel.com>2011-08-26 17:34:17 +0200
commit0e9e9bb9ce59f3919b1dec1ab0cda22b7aedce2a (patch)
tree0ed0ea7bf9008f4df7b2249866e41a475b0822b6 /src/network.c
parenta7ae93c1cb3e153626e769c73d1eb53ebaf92012 (diff)
downloadconnman-0e9e9bb9ce59f3919b1dec1ab0cda22b7aedce2a.tar.gz
connman-0e9e9bb9ce59f3919b1dec1ab0cda22b7aedce2a.tar.bz2
connman-0e9e9bb9ce59f3919b1dec1ab0cda22b7aedce2a.zip
network: Read only the ipconfig data if we have no address
We must not read ipconfig data from file if there is already a valid address that was set by service set_property(). Fixes BMC#22767
Diffstat (limited to 'src/network.c')
-rw-r--r--src/network.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/network.c b/src/network.c
index 95aecc7d..d360282f 100644
--- a/src/network.c
+++ b/src/network.c
@@ -890,10 +890,11 @@ static void set_connected_manual(struct connman_network *network)
service = __connman_service_lookup_from_network(network);
- __connman_service_read_ip4config(service);
-
ipconfig = __connman_service_get_ip4config(service);
+ if (__connman_ipconfig_get_local(ipconfig) == NULL)
+ __connman_service_read_ip4config(service);
+
set_configuration(network);
err = __connman_ipconfig_address_add(ipconfig);
@@ -945,7 +946,8 @@ static int manual_ipv6_set(struct connman_network *network,
if (service == NULL)
return -EINVAL;
- __connman_service_read_ip6config(service);
+ if (__connman_ipconfig_get_local(ipconfig_ipv6) == NULL)
+ __connman_service_read_ip6config(service);
err = __connman_ipconfig_address_add(ipconfig_ipv6);
if (err < 0) {