From: Daniel Wagner <[email protected]>

---
 include/notifier.h |    2 ++
 src/connman.h      |    2 ++
 src/notifier.c     |   13 +++++++++++++
 src/service.c      |    2 ++
 4 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/include/notifier.h b/include/notifier.h
index 7ac7c99..896eaae 100644
--- a/include/notifier.h
+++ b/include/notifier.h
@@ -53,6 +53,8 @@ struct connman_notifier {
                                        enum connman_service_state state);
        void (*ipconfig_changed) (struct connman_service *service,
                                        struct connman_ipconfig *ipconfig);
+       void (*roaming_changed) (struct connman_service *service,
+                                       connman_bool_t roaming);
 };
 
 int connman_notifier_register(struct connman_notifier *notifier);
diff --git a/src/connman.h b/src/connman.h
index f80268e..e564068 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -607,6 +607,8 @@ void __connman_notifier_service_state_changed(struct 
connman_service *service,
                                        enum connman_service_state state);
 void __connman_notifier_ipconfig_changed(struct connman_service *service,
                                        struct connman_ipconfig *ipconfig);
+void __connman_notifier_roaming_changed(struct connman_service *service,
+                                               connman_bool_t roaming);
 
 connman_bool_t __connman_notifier_is_registered(enum connman_service_type 
type);
 connman_bool_t __connman_notifier_is_enabled(enum connman_service_type type);
diff --git a/src/notifier.c b/src/notifier.c
index 27e53a1..ce86fe2 100644
--- a/src/notifier.c
+++ b/src/notifier.c
@@ -474,6 +474,19 @@ void __connman_notifier_ipconfig_changed(struct 
connman_service *service,
        }
 }
 
+void __connman_notifier_roaming_changed(struct connman_service *service,
+                                               connman_bool_t roaming)
+{
+       GSList *list;
+
+       for (list = notifier_list; list; list = list->next) {
+               struct connman_notifier *notifier = list->data;
+
+               if (notifier->roaming_changed)
+                       notifier->roaming_changed(service, roaming);
+       }
+}
+
 static connman_bool_t technology_supported(enum connman_service_type type)
 {
        switch (type) {
diff --git a/src/service.c b/src/service.c
index 290781b..acc32f8 100644
--- a/src/service.c
+++ b/src/service.c
@@ -883,6 +883,8 @@ static void immutable_changed(struct connman_service 
*service)
 
 static void roaming_changed(struct connman_service *service)
 {
+       __connman_notifier_roaming_changed(service, service->roaming);
+
        if (service->path == NULL)
                return;
 
-- 
1.7.4

_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to