summaryrefslogtreecommitdiff
path: root/src/network.c
diff options
context:
space:
mode:
authorPatrik Flykt <patrik.flykt@linux.intel.com>2011-08-22 13:44:27 +0300
committerSamuel Ortiz <sameo@linux.intel.com>2011-08-23 16:25:01 +0200
commit7b1fade4c9a982312f6377a57feacc97cbbcc522 (patch)
treed794ab299c21aee4bc633eaf67dd194f0e7828c6 /src/network.c
parent9a384100dc3eaddce677fc3988d1853d9b01e8ad (diff)
downloadconnman-7b1fade4c9a982312f6377a57feacc97cbbcc522.tar.gz
connman-7b1fade4c9a982312f6377a57feacc97cbbcc522.tar.bz2
connman-7b1fade4c9a982312f6377a57feacc97cbbcc522.zip
network: Re-read ipconfig from service when setting manual addresses
When a service was disconnected, its ipconfig data was cleared. Re-read service ipconfig data before setting manual addresses. Fixes BMC#17738
Diffstat (limited to 'src/network.c')
-rw-r--r--src/network.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/network.c b/src/network.c
index 76901126..95aecc7d 100644
--- a/src/network.c
+++ b/src/network.c
@@ -890,6 +890,8 @@ 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);
set_configuration(network);
@@ -943,6 +945,8 @@ static int manual_ipv6_set(struct connman_network *network,
if (service == NULL)
return -EINVAL;
+ __connman_service_read_ip6config(service);
+
err = __connman_ipconfig_address_add(ipconfig_ipv6);
if (err < 0) {
connman_network_set_error(network,