enum connman_service_state state;
const char *name;
struct connman_service *service;
+ const char *ifname;
};
struct session_info {
char *bearer;
- char *ifname;
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;
+ const char *name, *ifname;
if (session->append_all == TRUE ||
info->bearer != info_last->bearer) {
info->entry != info_last->entry) {
if (info->entry == NULL) {
name = "";
+ ifname = "";
service = NULL;
} else {
name = info->entry->name;
+ ifname = info->entry->ifname;
service = info->entry->service;
}
connman_dbus_dict_append_basic(dict, "Interface",
DBUS_TYPE_STRING,
- &info->ifname);
+ &ifname);
- info_last->ifname = info->ifname;
info_last->entry = info->entry;
}
static void update_info(struct session_info *info)
{
enum connman_service_type type;
- int idx;
if (info->entry != NULL) {
type = connman_service_get_type(info->entry->service);
info->bearer = service2bearer(type);
info->online = is_connected(info->entry->state);
-
- idx = __connman_service_get_index(info->entry->service);
- info->ifname = connman_inet_ifname(idx);
- if (info->ifname == NULL)
- info->ifname = "";
} else {
info->bearer = "";
info->online = FALSE;
- info->ifname = "";
}
}
enum connman_service_state state)
{
struct service_entry *entry;
+ int idx;
entry = g_try_new0(struct service_entry, 1);
if (entry == NULL)
entry->name = name;
entry->service = service;
+ idx = __connman_service_get_index(entry->service);
+ entry->ifname = connman_inet_ifname(idx);
+ if (entry->ifname == NULL)
+ entry->ifname = "";
+
+
return entry;
}