g_dbus_send_message(connection, signal);
}
+static void roaming_changed(struct connman_service *service)
+{
+ DBusMessage *signal;
+ DBusMessageIter entry, value;
+ const char *key = "Roaming";
+
+ if (service->path == NULL)
+ return;
+
+ signal = dbus_message_new_signal(service->path,
+ CONNMAN_SERVICE_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,
+ &service->roaming);
+ dbus_message_iter_close_container(&entry, &value);
+
+ g_dbus_send_message(connection, signal);
+}
+
static void autoconnect_changed(struct connman_service *service)
{
DBusMessage *signal;
}
service->strength = connman_network_get_uint8(network, "Strength");
+ service->roaming = connman_network_get_bool(network, "Roaming");
str = connman_network_get_string(network, "WiFi.Mode");
service->mode = convert_wifi_mode(str);
struct connman_service *service;
enum connman_service_mode mode;
connman_uint8_t strength, value;
+ connman_bool_t roaming;
service = __connman_service_lookup_from_network(network);
if (service == NULL)
strength = connman_network_get_uint8(service->network, "Strength");
if (strength == service->strength)
- goto done;
+ goto roaming;
service->strength = strength;
strength_changed(service);
+roaming:
+ roaming = connman_network_get_bool(service->network, "Roaming");
+ if (roaming == service->roaming)
+ goto done;
+
+ service->roaming = roaming;
+
+ roaming_changed(service);
+
done:
if (service->type != CONNMAN_SERVICE_TYPE_CELLULAR)
return;