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