wifi/iwd: Drop usage of the KnownNetworks IWD API
Before 0.5 IWD has changed the known networks API to expose separate objects for each known network and dropped the KnownNetworks manager-like interface so stop using that interface. Following patches will add tracking of the known networks through ObjectManager.
This commit is contained in:

committed by
Thomas Haller

parent
f2be625a07
commit
eec61a8e81
@@ -376,92 +376,6 @@ known_network_free (KnownNetworkData *network)
|
||||
g_free (network);
|
||||
}
|
||||
|
||||
static void
|
||||
list_known_networks_cb (GObject *source, GAsyncResult *res, gpointer user_data)
|
||||
{
|
||||
NMIwdManager *self = user_data;
|
||||
NMIwdManagerPrivate *priv = NM_IWD_MANAGER_GET_PRIVATE (self);
|
||||
gs_free_error GError *error = NULL;
|
||||
gs_unref_variant GVariant *variant = NULL;
|
||||
GVariantIter *networks, *props;
|
||||
|
||||
variant = _nm_dbus_proxy_call_finish (G_DBUS_PROXY (source), res,
|
||||
G_VARIANT_TYPE ("(aa{sv})"),
|
||||
&error);
|
||||
if (!variant) {
|
||||
_LOGE ("ListKnownNetworks() failed: %s", error->message);
|
||||
return;
|
||||
}
|
||||
|
||||
g_slist_free_full (priv->known_networks, (GDestroyNotify) known_network_free);
|
||||
priv->known_networks = NULL;
|
||||
|
||||
g_variant_get (variant, "(aa{sv})", &networks);
|
||||
|
||||
while (g_variant_iter_next (networks, "a{sv}", &props)) {
|
||||
const char *key;
|
||||
const char *name = NULL;
|
||||
const char *type = NULL;
|
||||
GVariant *val;
|
||||
KnownNetworkData *network_data;
|
||||
|
||||
while (g_variant_iter_next (props, "{&sv}", &key, &val)) {
|
||||
if (!strcmp (key, "Name"))
|
||||
name = get_variant_string_or_null (val);
|
||||
|
||||
if (!strcmp (key, "Type"))
|
||||
type = get_variant_string_or_null (val);
|
||||
|
||||
g_variant_unref (val);
|
||||
}
|
||||
|
||||
if (!name || !type)
|
||||
goto next;
|
||||
|
||||
network_data = g_new (KnownNetworkData, 1);
|
||||
network_data->name = g_strdup (name);
|
||||
if (!strcmp (type, "open"))
|
||||
network_data->security = NM_IWD_NETWORK_SECURITY_NONE;
|
||||
else if (!strcmp (type, "psk"))
|
||||
network_data->security = NM_IWD_NETWORK_SECURITY_PSK;
|
||||
else if (!strcmp (type, "8021x"))
|
||||
network_data->security = NM_IWD_NETWORK_SECURITY_8021X;
|
||||
|
||||
priv->known_networks = g_slist_append (priv->known_networks,
|
||||
network_data);
|
||||
|
||||
next:
|
||||
g_variant_iter_free (props);
|
||||
}
|
||||
|
||||
g_variant_iter_free (networks);
|
||||
|
||||
/* For completness we may want to call nm_device_emit_recheck_auto_activate
|
||||
* and nm_device_recheck_available_connections for all affected devices
|
||||
* now but the ListKnownNetworks call should have been really fast,
|
||||
* faster than any scan on any newly created devices could have happened.
|
||||
*/
|
||||
}
|
||||
|
||||
static void
|
||||
update_known_networks (NMIwdManager *self)
|
||||
{
|
||||
NMIwdManagerPrivate *priv = NM_IWD_MANAGER_GET_PRIVATE (self);
|
||||
GDBusInterface *known_networks_if;
|
||||
|
||||
known_networks_if = g_dbus_object_manager_get_interface (priv->object_manager,
|
||||
"/",
|
||||
NM_IWD_KNOWN_NETWORKS_INTERFACE);
|
||||
|
||||
g_dbus_proxy_call (G_DBUS_PROXY (known_networks_if),
|
||||
"ListKnownNetworks",
|
||||
g_variant_new ("()"),
|
||||
G_DBUS_CALL_FLAGS_NONE, -1,
|
||||
priv->cancellable, list_known_networks_cb, self);
|
||||
|
||||
g_object_unref (known_networks_if);
|
||||
}
|
||||
|
||||
static void prepare_object_manager (NMIwdManager *self);
|
||||
|
||||
static void
|
||||
@@ -580,8 +494,6 @@ got_object_manager (GObject *object, GAsyncResult *result, gpointer user_data)
|
||||
|
||||
if (priv->agent_id)
|
||||
register_agent (self);
|
||||
|
||||
update_known_networks (self);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user