NULL);
}
+static int modem_set_unpowered(struct modem_data *modem)
+{
+ DBG("%s", modem->path);
+
+ modem->set_powered = FALSE;
+
+ return set_property(modem, modem->path,
+ OFONO_MODEM_INTERFACE,
+ "Powered", DBUS_TYPE_BOOLEAN,
+ &modem->set_powered,
+ NULL);
+}
+
static connman_bool_t has_interface(uint8_t interfaces,
enum ofono_api api)
{
}
}
+static void modem_power_down(gpointer key, gpointer value, gpointer user_data)
+{
+ struct modem_data *modem = value;
+
+ DBG("%s", modem->path);
+
+ modem_set_unpowered(modem);
+}
+
static void remove_modem(gpointer data)
{
struct modem_data *modem = data;
DBG("");
if (modem_hash != NULL) {
+ /*
+ * We should propably wait for the SetProperty() reply
+ * message, because ...
+ */
+ g_hash_table_foreach(modem_hash, modem_power_down, NULL);
+
+ /*
+ * ... here we will cancel the call.
+ */
g_hash_table_destroy(modem_hash);
modem_hash = NULL;
}