summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-01-06 21:34:51 +0100
committerMarcel Holtmann <marcel@holtmann.org>2009-01-06 21:34:51 +0100
commitad004e33439795c2809aea26463bd440c17e3bf0 (patch)
treed77a87bccfe2cd0927ad134b390e0a85fdc221e4 /src
parent4164f01e263c846434b2bd48649edd2f88a8af91 (diff)
downloadconnman-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.c20
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;