wifi: merge branch 'bg/pmf-fix-issue129'

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/129
(cherry picked from commit 60365f9dec)
This commit is contained in:
Beniamino Galvani 2019-02-26 18:35:54 +01:00
commit a806e1b39b

View file

@ -728,9 +728,8 @@ iface_set_pmf_cb (GDBusProxy *proxy, GAsyncResult *result, gpointer user_data)
self = NM_SUPPLICANT_INTERFACE (user_data); self = NM_SUPPLICANT_INTERFACE (user_data);
/* This can fail if the supplicant doesn't support PMF */
if (error) if (error)
_LOGD ("failed to set Pmf=1: %s", error->message); _LOGW ("failed to set Pmf=1: %s", error->message);
iface_check_ready (self); iface_check_ready (self);
} }
@ -1638,21 +1637,9 @@ on_iface_proxy_acquired (GDBusProxy *proxy, GAsyncResult *result, gpointer user_
NULL, NULL,
NULL); NULL);
/* Initialize global PMF setting to 'optional' */ /* Check whether NetworkReply and AP mode are supported.
priv->ready_count++; * ready_count was initialized to 1 in interface_add_done().
g_dbus_proxy_call (priv->iface_proxy, */
DBUS_INTERFACE_PROPERTIES ".Set",
g_variant_new ("(ssv)",
WPAS_DBUS_IFACE_INTERFACE,
"Pmf",
g_variant_new_string ("1")),
G_DBUS_CALL_FLAGS_NONE,
-1,
priv->init_cancellable,
(GAsyncReadyCallback) iface_set_pmf_cb,
self);
/* Check whether NetworkReply and AP mode are supported */
g_dbus_proxy_call (priv->iface_proxy, g_dbus_proxy_call (priv->iface_proxy,
"NetworkReply", "NetworkReply",
g_variant_new ("(oss)", g_variant_new ("(oss)",
@ -1665,6 +1652,22 @@ on_iface_proxy_acquired (GDBusProxy *proxy, GAsyncResult *result, gpointer user_
(GAsyncReadyCallback) iface_check_netreply_cb, (GAsyncReadyCallback) iface_check_netreply_cb,
self); self);
if (priv->pmf_support == NM_SUPPLICANT_FEATURE_YES) {
/* Initialize global PMF setting to 'optional' */
priv->ready_count++;
g_dbus_proxy_call (priv->iface_proxy,
DBUS_INTERFACE_PROPERTIES ".Set",
g_variant_new ("(ssv)",
WPAS_DBUS_IFACE_INTERFACE,
"Pmf",
g_variant_new_string ("1")),
G_DBUS_CALL_FLAGS_NONE,
-1,
priv->init_cancellable,
(GAsyncReadyCallback) iface_set_pmf_cb,
self);
}
if (priv->ap_support == NM_SUPPLICANT_FEATURE_UNKNOWN) { if (priv->ap_support == NM_SUPPLICANT_FEATURE_UNKNOWN) {
/* If the global supplicant capabilities property is not present, we can /* If the global supplicant capabilities property is not present, we can
* fall back to checking whether the ProbeRequest method is supported. If * fall back to checking whether the ProbeRequest method is supported. If