const char *name;
struct connman_service *service;
const char *ifname;
+ const char *bearer;
};
struct session_info {
- char *bearer;
connman_bool_t online;
connman_bool_t priority;
GSList *allowed_bearers;
struct session_info *info_last = &session->info_last;
const char *policy;
struct connman_service *service;
- const char *name, *ifname;
-
- if (session->append_all == TRUE ||
- info->bearer != info_last->bearer) {
- connman_dbus_dict_append_basic(dict, "Bearer",
- DBUS_TYPE_STRING,
- &info->bearer);
- info_last->bearer = info->bearer;
- }
+ const char *name, *ifname, *bearer;
if (session->append_all == TRUE ||
info->online != info_last->online) {
name = "";
ifname = "";
service = NULL;
+ bearer = "";
} else {
name = info->entry->name;
ifname = info->entry->ifname;
service = info->entry->service;
+ bearer = info->entry->bearer;
}
connman_dbus_dict_append_basic(dict, "Name",
DBUS_TYPE_STRING,
&ifname);
+ connman_dbus_dict_append_basic(dict, "Bearer",
+ DBUS_TYPE_STRING,
+ &bearer);
+
info_last->entry = info->entry;
}
static void update_info(struct session_info *info)
{
- enum connman_service_type type;
-
- if (info->entry != NULL) {
- type = connman_service_get_type(info->entry->service);
- info->bearer = service2bearer(type);
-
+ if (info->entry != NULL)
info->online = is_connected(info->entry->state);
- } else {
- info->bearer = "";
+ else
info->online = FALSE;
- }
}
static connman_bool_t explicit_connect(enum connman_session_reason reason)
enum connman_service_state state)
{
struct service_entry *entry;
+ enum connman_service_type type;
int idx;
entry = g_try_new0(struct service_entry, 1);
if (entry->ifname == NULL)
entry->ifname = "";
+ type = connman_service_get_type(entry->service);
+ entry->bearer = service2bearer(type);
return entry;
}
session->service_hash = g_hash_table_new_full(g_str_hash, g_str_equal,
NULL, NULL);
- info->bearer = "";
info->online = FALSE;
info->priority = priority;
info->avoid_handover = avoid_handover;
update_ecall_sessions(session);
}
- info_last->bearer = info->bearer;
info_last->online = info->online;
info_last->priority = info->priority;
info_last->avoid_handover = info->avoid_handover;