return "";
}
-static char *session2bearer(struct connman_session *session)
-{
- struct session_info *info = &session->info;
- GSList *list;
- struct bearer_info *bearer_info;
- enum connman_service_type type;
-
- if (info->service == NULL)
- return "";
-
- type = connman_service_get_type(info->service);
-
- for (list = info->allowed_bearers;
- list != NULL; list = list->next) {
- bearer_info = list->data;
-
- if (bearer_info->match_all)
- return service2bearer(type);
-
- if (bearer_info->service_type == CONNMAN_SERVICE_TYPE_UNKNOWN)
- return bearer_info->name;
-
- if (bearer_info->service_type == type)
- return service2bearer(type);
- }
-
- return "";
-
-}
-
static void cleanup_bearer_info(gpointer data, gpointer user_data)
{
struct bearer_info *info = data;
DBUS_TYPE_STRING,
&info->ifname);
+ info_last->ifname = info->ifname;
info_last->service = info->service;
}
return FALSE;
}
-static void update_service(struct connman_session *session)
+static void update_info(struct session_info *info)
{
- struct session_info *info = &session->info;
+ enum connman_service_type type;
int idx;
if (info->service != NULL) {
- info->bearer = session2bearer(session);
+ type = connman_service_get_type(info->service);
+ info->bearer = service2bearer(type);
+
info->online = __connman_service_is_connected(info->service);
info->name = __connman_service_get_name(info->service);
+
idx = __connman_service_get_index(info->service);
info->ifname = connman_inet_ifname(idx);
}
out:
- if (info->service != info_last->service)
- update_service(session);
+ if (info->service != info_last->service) {
+ update_info(info);
+ session->info_dirty = TRUE;
+ }
}
static gboolean session_cb(gpointer user_data)
update_allowed_bearers(session);
- update_service(session);
+ update_info(info);
if (info->ecall == TRUE) {
ecall_session = session;
update_ecall_sessions(session);
info_last->service = info->service;
info_last->marker = info->marker;
info_last->allowed_bearers = info->allowed_bearers;
+ update_info(info_last);
session->info_dirty = TRUE;
session->append_all = TRUE;