diff options
Diffstat (limited to 'src/network.c')
-rw-r--r-- | src/network.c | 8 |
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) { |