summaryrefslogtreecommitdiff
path: root/src/session.c
diff options
context:
space:
mode:
authorDaniel Wagner <daniel.wagner@bmw-carit.de>2011-08-11 16:56:18 +0200
committerDaniel Wagner <daniel.wagner@bmw-carit.de>2011-08-11 17:40:52 +0200
commitf6a83bfa70bd6a6f4f442462caabf8ac017ac34f (patch)
tree9c3f98fda5b917ff3009ff68ae7a4880f43a2068 /src/session.c
parent7199d741c0f5de2cdf85af1f0e34ee6e6b0ca4bd (diff)
downloadconnman-f6a83bfa70bd6a6f4f442462caabf8ac017ac34f.tar.gz
connman-f6a83bfa70bd6a6f4f442462caabf8ac017ac34f.tar.bz2
connman-f6a83bfa70bd6a6f4f442462caabf8ac017ac34f.zip
session: Insert service_entry into service_list
When an element is removed from the list, the element will be passed to destroy_service_entry() which expects only elements of type struct service_entry.
Diffstat (limited to 'src/session.c')
-rw-r--r--src/session.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/session.c b/src/session.c
index 99fdf3b7..f17e284b 100644
--- a/src/session.c
+++ b/src/session.c
@@ -1572,6 +1572,7 @@ static void service_add(struct connman_service *service,
GSequenceIter *iter_service_list;
gpointer key, value;
struct connman_session *session;
+ struct service_entry *entry;
DBG("service %p", service);
@@ -1583,9 +1584,14 @@ static void service_add(struct connman_service *service,
if (service_match(session, service) == FALSE)
continue;
+ entry = create_service_entry(service, name,
+ CONNMAN_SERVICE_STATE_IDLE);
+ if (entry == NULL)
+ continue;
+
iter_service_list =
g_sequence_insert_sorted(session->service_list,
- service, sort_services,
+ entry, sort_services,
session);
g_hash_table_replace(session->service_hash, service,