diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2009-01-06 21:34:51 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2009-01-06 21:34:51 +0100 |
commit | ad004e33439795c2809aea26463bd440c17e3bf0 (patch) | |
tree | d77a87bccfe2cd0927ad134b390e0a85fdc221e4 /src | |
parent | 4164f01e263c846434b2bd48649edd2f88a8af91 (diff) | |
download | connman-ad004e33439795c2809aea26463bd440c17e3bf0.tar.gz connman-ad004e33439795c2809aea26463bd440c17e3bf0.tar.bz2 connman-ad004e33439795c2809aea26463bd440c17e3bf0.zip |
Fix missing signal for connected state changes
Diffstat (limited to 'src')
-rw-r--r-- | src/network.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/network.c b/src/network.c index cf641e2d..3e20245a 100644 --- a/src/network.c +++ b/src/network.c @@ -532,6 +532,10 @@ void connman_network_set_protocol(struct connman_network *network, int connman_network_set_connected(struct connman_network *network, connman_bool_t connected) { + DBusMessage *signal; + DBusMessageIter entry, value; + const char *key = "Connected"; + DBG("network %p connected %d", network, connected); if (network->connected == connected) @@ -539,6 +543,22 @@ int connman_network_set_connected(struct connman_network *network, network->connected = connected; + signal = dbus_message_new_signal(network->element.path, + CONNMAN_NETWORK_INTERFACE, "PropertyChanged"); + if (signal == NULL) + return 0; + + dbus_message_iter_init_append(signal, &entry); + + dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key); + + dbus_message_iter_open_container(&entry, DBUS_TYPE_VARIANT, + DBUS_TYPE_BOOLEAN_AS_STRING, &value); + dbus_message_iter_append_basic(&value, DBUS_TYPE_BOOLEAN, &connected); + dbus_message_iter_close_container(&entry, &value); + + g_dbus_send_message(connection, signal); + if (connected == TRUE) { struct connman_element *element; enum connman_element_type type = CONNMAN_ELEMENT_TYPE_UNKNOWN; |