X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fservice.c;h=f77c8a5841cf4e9ceeabd4e63338846092193bb6;hb=5269bd59e8100c6883b3f6e5609f57f8034e3140;hp=a1e745d95ffc77e980d332fa76bd150f2995313b;hpb=ac76bee17d44c17c8867972b1c5e108b7a32ce7f;p=platform%2Fupstream%2Fconnman.git diff --git a/src/service.c b/src/service.c index a1e745d..f77c8a5 100755 --- a/src/service.c +++ b/src/service.c @@ -2969,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; @@ -2982,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 @@ -7350,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 { }, };