Emit StateChangedProperties post emitting service state's PropertyChanged
[platform/upstream/connman.git] / src / service.c
index 0438bf9..f77c8a5 100755 (executable)
@@ -860,6 +860,9 @@ static int service_ext_load(struct connman_service *service)
        int i;
        int err = 0;
 
+#if defined TIZEN_EXT
+       if (!simplified_log)
+#endif
        DBG("service %p", service);
 
        if (!service->network)
@@ -1036,7 +1039,9 @@ static int service_load(struct connman_service *service)
 #if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET
        bool use_eapol;
 #endif
-
+#if defined TIZEN_EXT
+       if (!simplified_log)
+#endif
        DBG("service %p", service);
 
        keyfile = connman_storage_load_service(service->identifier);
@@ -2964,6 +2969,31 @@ static void default_changed(void)
        __connman_notifier_default_changed(service);
 }
 
+#if defined TIZEN_EXT
+static void append_struct(gpointer value, gpointer user_data);
+
+static void emit_state_changed_with_properties(struct connman_service *service)
+{
+       DBusMessage *signal;
+       DBusMessageIter iter;
+
+       if (!service)
+               return;
+
+       signal = dbus_message_new_signal(service->path, CONNMAN_SERVICE_INTERFACE,
+                       "StateChangedProperties");
+       if (!signal)
+               return;
+
+       dbus_message_iter_init_append(signal, &iter);
+       append_struct(service, &iter);
+
+       g_dbus_send_message(connection, signal);
+
+       return;
+}
+#endif
+
 static void state_changed(struct connman_service *service)
 {
        const char *str;
@@ -2977,14 +3007,17 @@ static void state_changed(struct connman_service *service)
 #if !defined TIZEN_EXT
        if (!allow_property_changed(service))
                return;
-
-#endif
-#if defined TIZEN_EXT
+#else
        DBG(" %s, %s", str, service->path);
 #endif
+
        connman_dbus_property_changed_basic(service->path,
                                CONNMAN_SERVICE_INTERFACE, "State",
                                                DBUS_TYPE_STRING, &str);
+
+#if defined TIZEN_EXT
+       emit_state_changed_with_properties(service);
+#endif
 }
 
 #if defined TIZEN_EXT
@@ -6259,6 +6292,9 @@ static void preferred_tech_add_by_type(gpointer data, gpointer user_data)
                tech_data->preferred_list =
                        g_list_append(tech_data->preferred_list, service);
 
+#if defined TIZEN_EXT
+               if (!simplified_log)
+#endif
                DBG("type %d service %p %s", tech_data->type, service,
                                service->name);
        }
@@ -6465,6 +6501,13 @@ static bool auto_connect_service(GList *services,
                if (autoconnect_no_session_active(service))
                        return true;
 #endif
+#if defined TIZEN_EXT
+               if (service->type == CONNMAN_SERVICE_TYPE_WIFI) {
+                       int index = connman_network_get_index(service->network);
+                       wifi_ignore = g_slist_prepend(wifi_ignore, GINT_TO_POINTER(index));
+                       autoconnecting = true;
+               }
+#endif
                ignore[service->type] = true;
        }
 #if defined TIZEN_EXT
@@ -7053,6 +7096,9 @@ static void service_append_added_foreach(gpointer data, gpointer user_data)
                append_struct(service, iter);
                g_hash_table_remove(services_notify->add, service->path);
        } else {
+#if defined TIZEN_EXT
+               if (!simplified_log)
+#endif
                DBG("changed %s", service->path);
 
                append_struct_service(iter, NULL, service);
@@ -7261,6 +7307,9 @@ static DBusMessage *downgrade_service(DBusConnection *conn,
 
 static void service_schedule_added(struct connman_service *service)
 {
+#if defined TIZEN_EXT
+       if (!simplified_log)
+#endif
        DBG("service %p", service);
 
        g_hash_table_remove(services_notify->remove, service->path);
@@ -7329,6 +7378,10 @@ static const GDBusMethodTable service_methods[] = {
 static const GDBusSignalTable service_signals[] = {
        { GDBUS_SIGNAL("PropertyChanged",
                        GDBUS_ARGS({ "name", "s" }, { "value", "v" })) },
+#if defined TIZEN_EXT
+       { GDBUS_SIGNAL("StateChangedProperties",
+                       GDBUS_ARGS({ "properties", "a{sv}" })) },
+#endif
        { },
 };
 
@@ -7454,6 +7507,9 @@ static void stats_init(struct connman_service *service)
 
 static void service_initialize(struct connman_service *service)
 {
+#if defined TIZEN_EXT
+       if (!simplified_log)
+#endif
        DBG("service %p", service);
 
        service->refcount = 1;
@@ -9960,7 +10016,9 @@ static struct connman_service *service_get(const char *identifier)
        service = connman_service_create();
        if (!service)
                return NULL;
-
+#if defined TIZEN_EXT
+       if (!simplified_log)
+#endif
        DBG("service %p", service);
 
        service->identifier = g_strdup(identifier);
@@ -9975,6 +10033,9 @@ static struct connman_service *service_get(const char *identifier)
 
 static int service_register(struct connman_service *service)
 {
+#if defined TIZEN_EXT
+       if (!simplified_log)
+#endif
        DBG("service %p", service);
 
        if (service->path)
@@ -9992,7 +10053,7 @@ static int service_register(struct connman_service *service)
        if (ret == -ERANGE)
                service_ext_save(service);
        ret = __connman_config_provision_service(service);
-       if (ret < 0)
+       if (ret < 0 && !simplified_log)
                DBG("Failed to provision service");
 #else
        if (__connman_config_provision_service(service) < 0)
@@ -10608,7 +10669,8 @@ void __connman_service_notify_strength_changed(struct connman_network *network)
                return;
 
        service->strength = strength;
-       DBG("Strength %d", strength);
+       if (!simplified_log)
+               DBG("Strength %d", strength);
        strength_changed(service);
        service_list_sort();
 }