e/connman: split stringshare and non-stringshare
search SVN revision: 76053
This commit is contained in:
parent
091380518e
commit
339cd51087
|
@ -73,6 +73,13 @@ extern int E_CONNMAN_EVENT_MANAGER_OUT;
|
||||||
unsigned int e_connman_system_init(E_DBus_Connection *edbus_conn) EINA_ARG_NONNULL(1);
|
unsigned int e_connman_system_init(E_DBus_Connection *edbus_conn) EINA_ARG_NONNULL(1);
|
||||||
unsigned int e_connman_system_shutdown(void);
|
unsigned int e_connman_system_shutdown(void);
|
||||||
|
|
||||||
|
/* Requests from UI */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find service using a non-stringshared path
|
||||||
|
*/
|
||||||
|
struct Connman_Service *econnman_manager_find_service(struct Connman_Manager *cm, const char *path) EINA_ARG_NONNULL(1, 2);
|
||||||
|
|
||||||
/* UI calls from econnman */
|
/* UI calls from econnman */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -287,12 +287,11 @@ static struct Connman_Service *_service_new(const char *path, DBusMessageIter *p
|
||||||
return cs;
|
return cs;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct Connman_Service *_manager_find_service_by_path(struct Connman_Manager *cm,
|
static struct Connman_Service *_manager_find_service_stringshared(
|
||||||
const char *path)
|
struct Connman_Manager *cm, const char *path)
|
||||||
{
|
{
|
||||||
struct Connman_Service *cs, *found = NULL;
|
struct Connman_Service *cs, *found = NULL;
|
||||||
|
|
||||||
path = eina_stringshare_add(path);
|
|
||||||
EINA_INLIST_FOREACH(cm->services, cs)
|
EINA_INLIST_FOREACH(cm->services, cs)
|
||||||
{
|
{
|
||||||
if (cs->obj.path == path)
|
if (cs->obj.path == path)
|
||||||
|
@ -300,12 +299,21 @@ static struct Connman_Service *_manager_find_service_by_path(struct Connman_Mana
|
||||||
found = cs;
|
found = cs;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
eina_stringshare_del(path);
|
|
||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct Connman_Service *econnman_manager_find_service(struct Connman_Manager *cm,
|
||||||
|
const char *path)
|
||||||
|
{
|
||||||
|
struct Connman_Service *cs;
|
||||||
|
|
||||||
|
path = eina_stringshare_add(path);
|
||||||
|
cs = _manager_find_service_stringshared(cm, path);
|
||||||
|
eina_stringshare_del(path);
|
||||||
|
return cs;
|
||||||
|
}
|
||||||
|
|
||||||
static void _manager_services_remove(struct Connman_Manager *cm,
|
static void _manager_services_remove(struct Connman_Manager *cm,
|
||||||
DBusMessageIter *array)
|
DBusMessageIter *array)
|
||||||
{
|
{
|
||||||
|
@ -322,7 +330,7 @@ static void _manager_services_remove(struct Connman_Manager *cm,
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
dbus_message_iter_get_basic(array, &path);
|
dbus_message_iter_get_basic(array, &path);
|
||||||
cs = _manager_find_service_by_path(cm, path);
|
cs = econnman_manager_find_service(cm, path);
|
||||||
if (cs == NULL)
|
if (cs == NULL)
|
||||||
{
|
{
|
||||||
ERR("Received object path '%s' to remove, but it's not in list",
|
ERR("Received object path '%s' to remove, but it's not in list",
|
||||||
|
@ -379,7 +387,7 @@ static void _manager_services_changed(void *data, DBusMessage *msg)
|
||||||
}
|
}
|
||||||
dbus_message_iter_get_basic(&entry, &path);
|
dbus_message_iter_get_basic(&entry, &path);
|
||||||
|
|
||||||
cs = _manager_find_service_by_path(cm, path);
|
cs = econnman_manager_find_service(cm, path);
|
||||||
|
|
||||||
dbus_message_iter_next(&entry);
|
dbus_message_iter_next(&entry);
|
||||||
if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_ARRAY)
|
if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_ARRAY)
|
||||||
|
|
Loading…
Reference in New Issue