Skip to content

Commit

Permalink
Add Gadget session and weighting support.
Browse files Browse the repository at this point in the history
This patch adds support for Gadget sessions. Assigned Gadget service
a weight.  Bearer mappings for Gadget sessions were introduced.
  • Loading branch information
Glenn Schmottlach authored and pfl committed Feb 17, 2014
1 parent 1a831b6 commit ec09003
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 7 deletions.
5 changes: 3 additions & 2 deletions src/service.c
Expand Up @@ -3472,6 +3472,7 @@ void __connman_service_set_active_session(bool enable, GSList *list)
case CONNMAN_SERVICE_TYPE_WIFI:
case CONNMAN_SERVICE_TYPE_BLUETOOTH:
case CONNMAN_SERVICE_TYPE_CELLULAR:
case CONNMAN_SERVICE_TYPE_GADGET:
if (enable)
active_sessions[type]++;
else
Expand All @@ -3482,18 +3483,18 @@ void __connman_service_set_active_session(bool enable, GSList *list)
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",
DBG("eth %d wifi %d bt %d cellular %d gadget %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],
active_sessions[CONNMAN_SERVICE_TYPE_GADGET],
active_count);
}

Expand Down
15 changes: 10 additions & 5 deletions src/session.c
Expand Up @@ -193,6 +193,8 @@ static int bearer2service(const char *bearer, enum connman_service_type *type)
*type = CONNMAN_SERVICE_TYPE_ETHERNET;
else if (g_strcmp0(bearer, "wifi") == 0)
*type = CONNMAN_SERVICE_TYPE_WIFI;
else if (g_strcmp0(bearer, "gadget") == 0)
*type = CONNMAN_SERVICE_TYPE_GADGET;
else if (g_strcmp0(bearer, "bluetooth") == 0)
*type = CONNMAN_SERVICE_TYPE_BLUETOOTH;
else if (g_strcmp0(bearer, "cellular") == 0)
Expand All @@ -212,6 +214,8 @@ static char *service2bearer(enum connman_service_type type)
switch (type) {
case CONNMAN_SERVICE_TYPE_ETHERNET:
return "ethernet";
case CONNMAN_SERVICE_TYPE_GADGET:
return "gadget";
case CONNMAN_SERVICE_TYPE_WIFI:
return "wifi";
case CONNMAN_SERVICE_TYPE_BLUETOOTH:
Expand All @@ -224,7 +228,6 @@ static char *service2bearer(enum connman_service_type type)
return "*";
case CONNMAN_SERVICE_TYPE_SYSTEM:
case CONNMAN_SERVICE_TYPE_GPS:
case CONNMAN_SERVICE_TYPE_GADGET:
return "";
}

Expand Down Expand Up @@ -1050,13 +1053,16 @@ static int service_type_weight(enum connman_service_type type)
* according their type. The ordering is
*
* 1. Ethernet
* 2. Bluetooth
* 3. WiFi
* 4. Cellular
* 2. Gadget
* 3. Bluetooth
* 4. WiFi
* 5. Cellular
*/

switch (type) {
case CONNMAN_SERVICE_TYPE_ETHERNET:
return 5;
case CONNMAN_SERVICE_TYPE_GADGET:
return 4;
case CONNMAN_SERVICE_TYPE_BLUETOOTH:
return 3;
Expand All @@ -1068,7 +1074,6 @@ static int service_type_weight(enum connman_service_type type)
case CONNMAN_SERVICE_TYPE_SYSTEM:
case CONNMAN_SERVICE_TYPE_GPS:
case CONNMAN_SERVICE_TYPE_VPN:
case CONNMAN_SERVICE_TYPE_GADGET:
break;
}

Expand Down

0 comments on commit ec09003

Please sign in to comment.