Instead of having similar code in __connman_network_set_ipconfig, use
the previously factored out ipconfig connection code. With this change
manual_ipv4_set is not used anymore and the function prototype is also
changed.
Remove also the function call to __connman_network_set_ipconfig as the
function prototype has changed and it is being called from the wrong
place.
---
src/connman.h | 3 +--
src/network.c | 72 ++++++---------------------------------------------------
src/service.c | 5 ----
3 files changed, 8 insertions(+), 72 deletions(-)
diff --git a/src/connman.h b/src/connman.h
index 1e6bfec..ab0779a 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -527,8 +527,7 @@ int __connman_network_disconnect(struct connman_network
*network);
int __connman_network_clear_ipconfig(struct connman_network *network,
struct connman_ipconfig *ipconfig);
int __connman_network_set_ipconfig(struct connman_network *network,
- struct connman_ipconfig *ipconfig_ipv4,
- struct connman_ipconfig *ipconfig_ipv6);
+ struct connman_ipconfig *ipconfig);
const char *__connman_network_get_type(struct connman_network *network);
const char *__connman_network_get_group(struct connman_network *network);
diff --git a/src/network.c b/src/network.c
index badc4c9..9742ac9 100644
--- a/src/network.c
+++ b/src/network.c
@@ -1581,26 +1581,6 @@ int __connman_network_disconnect(struct connman_network
*network)
return err;
}
-static int manual_ipv4_set(struct connman_network *network,
- struct connman_ipconfig *ipconfig)
-{
- struct connman_service *service;
- int err;
-
- service = connman_service_lookup_from_network(network);
- if (service == NULL)
- return -EINVAL;
-
- err = __connman_ipconfig_address_add(ipconfig);
- if (err < 0) {
- connman_network_set_error(network,
- CONNMAN_NETWORK_ERROR_CONFIGURE_FAIL);
- return err;
- }
-
- return __connman_ipconfig_gateway_add(ipconfig);
-}
-
int __connman_network_clear_ipconfig(struct connman_network *network,
struct connman_ipconfig *ipconfig)
{
@@ -1617,56 +1597,18 @@ int __connman_network_clear_ipconfig(struct
connman_network *network,
}
int __connman_network_set_ipconfig(struct connman_network *network,
- struct connman_ipconfig *ipconfig_ipv4,
- struct connman_ipconfig *ipconfig_ipv6)
+ struct connman_ipconfig *ipconfig)
{
- enum connman_ipconfig_method method;
- int ret;
-
- if (network == NULL)
- return -EINVAL;
-
- if (ipconfig_ipv6) {
- method = __connman_ipconfig_get_method(ipconfig_ipv6);
+ int err;
- switch (method) {
- case CONNMAN_IPCONFIG_METHOD_UNKNOWN:
- case CONNMAN_IPCONFIG_METHOD_OFF:
- break;
- case CONNMAN_IPCONFIG_METHOD_AUTO:
- autoconf_ipv6_set(network);
- break;
- case CONNMAN_IPCONFIG_METHOD_FIXED:
- case CONNMAN_IPCONFIG_METHOD_MANUAL:
- ret = manual_ipv6_set(network, ipconfig_ipv6);
- if (ret != 0) {
- connman_network_set_error(network,
- CONNMAN_NETWORK_ERROR_ASSOCIATE_FAIL);
- return ret;
- }
- break;
- case CONNMAN_IPCONFIG_METHOD_DHCP:
- break;
- }
- }
+ if (network->connected == FALSE && network->connecting == FALSE)
+ return -ENOTCONN;
- if (ipconfig_ipv4) {
- method = __connman_ipconfig_get_method(ipconfig_ipv4);
+ __connman_ipconfig_enable(ipconfig);
- switch (method) {
- case CONNMAN_IPCONFIG_METHOD_UNKNOWN:
- case CONNMAN_IPCONFIG_METHOD_OFF:
- case CONNMAN_IPCONFIG_METHOD_FIXED:
- case CONNMAN_IPCONFIG_METHOD_AUTO:
- return -EINVAL;
- case CONNMAN_IPCONFIG_METHOD_MANUAL:
- return manual_ipv4_set(network, ipconfig_ipv4);
- case CONNMAN_IPCONFIG_METHOD_DHCP:
- return __connman_dhcp_start(network, dhcp_callback);
- }
- }
+ err = set_ipconfig_connected(network, ipconfig);
- return 0;
+ return err;
}
int connman_network_set_ipaddress(struct connman_network *network,
diff --git a/src/service.c b/src/service.c
index 96cb7c0..5c7a014 100644
--- a/src/service.c
+++ b/src/service.c
@@ -3306,11 +3306,6 @@ static DBusMessage *set_property(DBusConnection *conn,
else
ipv6_configuration_changed(service);
- if (is_connecting(service) || is_connected(service))
- __connman_network_set_ipconfig(service->network,
- service->ipconfig_ipv4,
- service->ipconfig_ipv6);
-
service_save(service);
} else
return __connman_error_invalid_property(msg);
--
1.7.10.4
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman