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

Reply via email to