diff options
Diffstat (limited to 'src/service.c')
-rw-r--r-- | src/service.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/service.c b/src/service.c index e23a6510..7b7717ff 100644 --- a/src/service.c +++ b/src/service.c @@ -610,7 +610,7 @@ int connman_service_set_favorite(struct connman_service *service, if (iter == NULL) return -ENOENT; - if (service->favorite) + if (service->favorite == favorite) return -EALREADY; service->favorite = favorite; @@ -777,6 +777,7 @@ static struct connman_service *__connman_service_get(const char *identifier) static int service_register(struct connman_service *service) { const char *path = __connman_profile_active_path(); + GSequenceIter *iter; DBG("service %p", service); @@ -792,6 +793,12 @@ static int service_register(struct connman_service *service) service_methods, service_signals, NULL, service, NULL); + __connman_storage_load_service(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; |