Calling __connman_service_ipconfig_indicate_state for both IPv4 and IPv6 is a fairly common pattern on connman. It makes sense to combine these two calls into one function. --- src/connman.h | 2 ++ src/network.c | 17 ++++------------- src/service.c | 34 +++++++++++++++------------------- 3 files changed, 21 insertions(+), 32 deletions(-)
diff --git a/src/connman.h b/src/connman.h index aac6a0b..c5a94c9 100644 --- a/src/connman.h +++ b/src/connman.h @@ -703,6 +703,8 @@ int __connman_service_online_check_failed(struct connman_service *service, int __connman_service_ipconfig_indicate_state(struct connman_service *service, enum connman_service_state new_state, enum connman_ipconfig_type type); +void __connman_service_ipconfig_indicate_states(struct connman_service *service, + enum connman_service_state new_state); enum connman_service_state __connman_service_ipconfig_get_state( struct connman_service *service, enum connman_ipconfig_type type); diff --git a/src/network.c b/src/network.c index badb770..cd66c4e 100644 --- a/src/network.c +++ b/src/network.c @@ -697,13 +697,8 @@ static void set_disconnected(struct connman_network *network) } } - __connman_service_ipconfig_indicate_state(service, - CONNMAN_SERVICE_STATE_IDLE, - CONNMAN_IPCONFIG_TYPE_IPV4); - - __connman_service_ipconfig_indicate_state(service, - CONNMAN_SERVICE_STATE_IDLE, - CONNMAN_IPCONFIG_TYPE_IPV6); + __connman_service_ipconfig_indicate_states(service, + CONNMAN_SERVICE_STATE_IDLE); network->connecting = false; network->connected = false; @@ -1214,12 +1209,8 @@ int connman_network_set_associating(struct connman_network *network, struct connman_service *service; service = connman_service_lookup_from_network(network); - __connman_service_ipconfig_indicate_state(service, - CONNMAN_SERVICE_STATE_ASSOCIATION, - CONNMAN_IPCONFIG_TYPE_IPV4); - __connman_service_ipconfig_indicate_state(service, - CONNMAN_SERVICE_STATE_ASSOCIATION, - CONNMAN_IPCONFIG_TYPE_IPV6); + __connman_service_ipconfig_indicate_states(service, + CONNMAN_SERVICE_STATE_ASSOCIATION); } return 0; diff --git a/src/service.c b/src/service.c index 2d8245e..00385ac 100644 --- a/src/service.c +++ b/src/service.c @@ -3927,12 +3927,8 @@ static gboolean connect_timeout(gpointer user_data) } else autoconnect = true; - __connman_service_ipconfig_indicate_state(service, - CONNMAN_SERVICE_STATE_FAILURE, - CONNMAN_IPCONFIG_TYPE_IPV4); - __connman_service_ipconfig_indicate_state(service, - CONNMAN_SERVICE_STATE_FAILURE, - CONNMAN_IPCONFIG_TYPE_IPV6); + __connman_service_ipconfig_indicate_states(service, + CONNMAN_SERVICE_STATE_FAILURE); if (autoconnect && service->connect_reason != @@ -5452,12 +5448,8 @@ int __connman_service_indicate_error(struct connman_service *service, set_error(service, error); - __connman_service_ipconfig_indicate_state(service, - CONNMAN_SERVICE_STATE_FAILURE, - CONNMAN_IPCONFIG_TYPE_IPV4); - __connman_service_ipconfig_indicate_state(service, - CONNMAN_SERVICE_STATE_FAILURE, - CONNMAN_IPCONFIG_TYPE_IPV6); + __connman_service_ipconfig_indicate_states(service, + CONNMAN_SERVICE_STATE_FAILURE); return 0; } @@ -5478,13 +5470,8 @@ int __connman_service_clear_error(struct connman_service *service) provider_pending = service->provider_pending; service->provider_pending = NULL; - __connman_service_ipconfig_indicate_state(service, - CONNMAN_SERVICE_STATE_IDLE, - CONNMAN_IPCONFIG_TYPE_IPV6); - - __connman_service_ipconfig_indicate_state(service, - CONNMAN_SERVICE_STATE_IDLE, - CONNMAN_IPCONFIG_TYPE_IPV4); + __connman_service_ipconfig_indicate_states(service, + CONNMAN_SERVICE_STATE_IDLE); service->pending = pending; service->provider_pending = provider_pending; @@ -5649,6 +5636,15 @@ int __connman_service_online_check_failed(struct connman_service *service, return EAGAIN; } +void __connman_service_ipconfig_indicate_states(struct connman_service *service, + enum connman_service_state new_state) +{ + __connman_service_ipconfig_indicate_state(service, new_state, + CONNMAN_IPCONFIG_TYPE_IPV4); + __connman_service_ipconfig_indicate_state(service, new_state, + CONNMAN_IPCONFIG_TYPE_IPV6); +} + int __connman_service_ipconfig_indicate_state(struct connman_service *service, enum connman_service_state new_state, enum connman_ipconfig_type type) -- 1.8.3.2 _______________________________________________ connman mailing list connman@connman.net https://lists.connman.net/mailman/listinfo/connman