projects
/
connman
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
19d241d
)
Make sure to sort connected services first always first
author
Marcel Holtmann
<marcel@holtmann.org>
Fri, 15 May 2009 03:49:20 +0000
(20:49 -0700)
committer
Marcel Holtmann
<marcel@holtmann.org>
Fri, 15 May 2009 03:49:20 +0000
(20:49 -0700)
src/service.c
patch
|
blob
|
history
diff --git
a/src/service.c
b/src/service.c
index
c194c55
..
951c9d6
100644
(file)
--- a/
src/service.c
+++ b/
src/service.c
@@
-592,6
+592,13
@@
static gint service_compare(gconstpointer a, gconstpointer b,
struct connman_service *service_a = (void *) a;
struct connman_service *service_b = (void *) b;
struct connman_service *service_a = (void *) a;
struct connman_service *service_b = (void *) b;
+ if (service_a->state != service_b->state) {
+ if (service_a->state == CONNMAN_SERVICE_STATE_READY)
+ return -1;
+ if (service_b->state == CONNMAN_SERVICE_STATE_READY)
+ return 1;
+ }
+
if (service_a->order > service_b->order)
return -1;
if (service_a->order > service_b->order)
return -1;
@@
-669,6
+676,8
@@
int __connman_service_set_carrier(struct connman_service *service,
int __connman_service_indicate_state(struct connman_service *service,
enum connman_service_state state)
{
int __connman_service_indicate_state(struct connman_service *service,
enum connman_service_state state)
{
+ GSequenceIter *iter;
+
DBG("service %p state %d", service, state);
if (service == NULL)
DBG("service %p state %d", service, state);
if (service == NULL)
@@
-728,6
+737,12
@@
int __connman_service_indicate_state(struct connman_service *service,
state_changed(service);
}
state_changed(service);
}
+ iter = g_hash_table_lookup(service_hash, service->identifier);
+ if (iter != NULL)
+ g_sequence_sort_changed(iter, service_compare, NULL);
+
+ __connman_profile_changed();
+
return 0;
}
return 0;
}