--- src/device.c | 44 +++++++++++++++++++++++++------------------- 1 files changed, 25 insertions(+), 19 deletions(-)
diff --git a/src/device.c b/src/device.c index 1d66936..2427c68 100644 --- a/src/device.c +++ b/src/device.c @@ -1442,6 +1442,30 @@ void __connman_device_cleanup_networks(struct connman_device *device) remove_unavailable_network, NULL); } +static void scanning_changed(struct connman_device *device) +{ + DBusMessage *signal; + DBusMessageIter entry, value; + const char *key = "Scanning"; + + signal = dbus_message_new_signal(device->element.path, + CONNMAN_DEVICE_INTERFACE, "PropertyChanged"); + if (signal == NULL) + return; + + 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, + &device->scanning); + dbus_message_iter_close_container(&entry, &value); + + g_dbus_send_message(connection, signal); +} + /** * connman_device_set_scanning: * @device: device structure @@ -1452,10 +1476,6 @@ void __connman_device_cleanup_networks(struct connman_device *device) int connman_device_set_scanning(struct connman_device *device, connman_bool_t scanning) { - DBusMessage *signal; - DBusMessageIter entry, value; - const char *key = "Scanning"; - DBG("device %p scanning %d", device, scanning); if (!device->driver || !device->driver->scan) @@ -1466,21 +1486,7 @@ int connman_device_set_scanning(struct connman_device *device, device->scanning = scanning; - signal = dbus_message_new_signal(device->element.path, - CONNMAN_DEVICE_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, &scanning); - dbus_message_iter_close_container(&entry, &value); - - g_dbus_send_message(connection, signal); + scanning_changed(device); if (scanning == TRUE) { reset_scan_trigger(device); -- 1.6.1.3 _______________________________________________ connman mailing list connman@connman.net http://lists.connman.net/listinfo/connman