From: Daniel Wagner <[email protected]>

Each service already knows via service->sessions if there is
a user (either in free-ride or connect state) associated with it.
So there is little point in keeping a counter table per technology.
---
 src/service.c | 31 +++----------------------------
 1 file changed, 3 insertions(+), 28 deletions(-)

diff --git a/src/service.c b/src/service.c
index 3c04a59..5efa0fe 100644
--- a/src/service.c
+++ b/src/service.c
@@ -43,7 +43,6 @@ static DBusConnection *connection = NULL;
 
 static GList *service_list = NULL;
 static GSList *session_list = NULL;
-static int active_sessions[MAX_CONNMAN_SERVICE_TYPES] = {};
 static GHashTable *service_hash = NULL;
 static GSList *counter_list = NULL;
 static unsigned int autoconnect_timeout = 0;
@@ -3553,6 +3552,8 @@ void __connman_service_set_active_session(struct 
connman_session *session,
 {
        GList *iter;
 
+       DBG("session %p enable %d", session, enable);
+
        if (!list)
                return;
 
@@ -3578,34 +3579,8 @@ void __connman_service_set_active_session(struct 
connman_session *session,
                                remove_service_from_session(service, session);
                }
 
-               switch (type) {
-               case CONNMAN_SERVICE_TYPE_ETHERNET:
-               case CONNMAN_SERVICE_TYPE_WIFI:
-               case CONNMAN_SERVICE_TYPE_BLUETOOTH:
-               case CONNMAN_SERVICE_TYPE_CELLULAR:
-                       if (enable)
-                               active_sessions[type]++;
-                       else
-                               active_sessions[type]--;
-                       break;
-
-               case CONNMAN_SERVICE_TYPE_UNKNOWN:
-               case CONNMAN_SERVICE_TYPE_SYSTEM:
-               case CONNMAN_SERVICE_TYPE_GPS:
-               case CONNMAN_SERVICE_TYPE_VPN:
-               case CONNMAN_SERVICE_TYPE_GADGET:
-                       break;
-               }
-
                list = g_slist_next(list);
        }
-
-       DBG("eth %d wifi %d bt %d cellular %d sessions %d",
-                       active_sessions[CONNMAN_SERVICE_TYPE_ETHERNET],
-                       active_sessions[CONNMAN_SERVICE_TYPE_WIFI],
-                       active_sessions[CONNMAN_SERVICE_TYPE_BLUETOOTH],
-                       active_sessions[CONNMAN_SERVICE_TYPE_CELLULAR],
-                       g_slist_length(session_list));
 }
 
 struct preferred_tech_data {
@@ -3709,7 +3684,7 @@ static bool auto_connect_service(GList *services, bool 
preferred)
                                CONNMAN_SERVICE_STATE_IDLE)
                        continue;
 
-               if (autoconnecting && !active_sessions[service->type]) {
+               if (autoconnecting && !service->sessions) {
                        DBG("service %p type %s has no users", service,
                                __connman_service_type2string(service->type));
                        continue;
-- 
1.8.4.474.g128a96c

_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman

Reply via email to