about summary refs log tree commit diff
path: root/src/supplicant/nm-supplicant-manager.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2019-07-31 10:51:42 +0200
committerMichael Biebl <biebl@debian.org>2019-07-31 10:51:42 +0200
commit2e5fa45ddfbb5cffa1e78221f1cea706e2f298af (patch)
tree86f69d36c56de3074280456eddc854a780b8e04b /src/supplicant/nm-supplicant-manager.c
parent85563b7fc7ec2cd21e38debb9b28db342e2e8e7c (diff)
New upstream version 1.19.90 upstream/1.19.90
Diffstat (limited to 'src/supplicant/nm-supplicant-manager.c')
-rw-r--r--src/supplicant/nm-supplicant-manager.c44
1 files changed, 39 insertions, 5 deletions
diff --git a/src/supplicant/nm-supplicant-manager.c b/src/supplicant/nm-supplicant-manager.c
index 104aeee7..df641c51 100644
--- a/src/supplicant/nm-supplicant-manager.c
+++ b/src/supplicant/nm-supplicant-manager.c
@@ -1,4 +1,3 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 /* NetworkManager -- Network link manager
  *
  * This program is free software; you can redistribute it and/or modify
@@ -40,7 +39,10 @@ typedef struct {
 	NMSupplicantFeature pmf_support;
 	NMSupplicantFeature fils_support;
 	NMSupplicantFeature p2p_support;
+	NMSupplicantFeature mesh_support;
 	NMSupplicantFeature wfd_support;
+	NMSupplicantFeature ft_support;
+	NMSupplicantFeature sha384_support;
 	guint             die_count_reset_id;
 	guint             die_count;
 } NMSupplicantManagerPrivate;
@@ -232,7 +234,10 @@ nm_supplicant_manager_create_interface (NMSupplicantManager *self,
 	                                     priv->pmf_support,
 	                                     priv->fils_support,
 	                                     priv->p2p_support,
-	                                     priv->wfd_support);
+	                                     priv->mesh_support,
+	                                     priv->wfd_support,
+	                                     priv->ft_support,
+	                                     priv->sha384_support);
 
 	priv->ifaces = g_slist_prepend (priv->ifaces, iface);
 	g_object_add_toggle_ref ((GObject *) iface, _sup_iface_last_ref, self);
@@ -289,7 +294,10 @@ nm_supplicant_manager_create_interface_from_path (NMSupplicantManager *self,
 	                                     priv->pmf_support,
 	                                     priv->fils_support,
 	                                     priv->p2p_support,
-	                                     priv->wfd_support);
+	                                     priv->mesh_support,
+	                                     priv->wfd_support,
+	                                     priv->ft_support,
+	                                     priv->sha384_support);
 
 	priv->ifaces = g_slist_prepend (priv->ifaces, iface);
 	g_object_add_toggle_ref ((GObject *) iface, _sup_iface_last_ref, self);
@@ -325,8 +333,11 @@ update_capabilities (NMSupplicantManager *self)
 	priv->ap_support = NM_SUPPLICANT_FEATURE_UNKNOWN;
 	priv->pmf_support = NM_SUPPLICANT_FEATURE_UNKNOWN;
 	priv->fils_support = NM_SUPPLICANT_FEATURE_UNKNOWN;
-	/* P2P support is newer than the capabilities property */
+	/* Support for the following is newer than the capabilities property */
 	priv->p2p_support = NM_SUPPLICANT_FEATURE_NO;
+	priv->ft_support = NM_SUPPLICANT_FEATURE_NO;
+	priv->sha384_support = NM_SUPPLICANT_FEATURE_NO;
+	priv->mesh_support = NM_SUPPLICANT_FEATURE_NO;
 
 	value = g_dbus_proxy_get_cached_property (priv->proxy, "Capabilities");
 	if (value) {
@@ -336,6 +347,9 @@ update_capabilities (NMSupplicantManager *self)
 			priv->pmf_support = NM_SUPPLICANT_FEATURE_NO;
 			priv->fils_support = NM_SUPPLICANT_FEATURE_NO;
 			priv->p2p_support = NM_SUPPLICANT_FEATURE_NO;
+			priv->ft_support = NM_SUPPLICANT_FEATURE_NO;
+			priv->sha384_support = NM_SUPPLICANT_FEATURE_NO;
+			priv->mesh_support = NM_SUPPLICANT_FEATURE_NO;
 			if (array) {
 				if (g_strv_contains (array, "ap"))
 					priv->ap_support = NM_SUPPLICANT_FEATURE_YES;
@@ -345,18 +359,27 @@ update_capabilities (NMSupplicantManager *self)
 					priv->fils_support = NM_SUPPLICANT_FEATURE_YES;
 				if (g_strv_contains (array, "p2p"))
 					priv->p2p_support = NM_SUPPLICANT_FEATURE_YES;
+				if (g_strv_contains (array, "ft"))
+					priv->ft_support = NM_SUPPLICANT_FEATURE_YES;
+				if (g_strv_contains (array, "sha384"))
+					priv->sha384_support = NM_SUPPLICANT_FEATURE_YES;
+				if (g_strv_contains (array, "mesh"))
+					priv->mesh_support = NM_SUPPLICANT_FEATURE_YES;
 				g_free (array);
 			}
 		}
 		g_variant_unref (value);
 	}
 
-	/* Tell all interfaces about results of the AP/PMF/FILS/P2P check */
+	/* Tell all interfaces about results of the AP/PMF/FILS/P2P/FT/SHA384 check */
 	for (ifaces = priv->ifaces; ifaces; ifaces = ifaces->next) {
 		nm_supplicant_interface_set_ap_support (ifaces->data, priv->ap_support);
 		nm_supplicant_interface_set_pmf_support (ifaces->data, priv->pmf_support);
 		nm_supplicant_interface_set_fils_support (ifaces->data, priv->fils_support);
 		nm_supplicant_interface_set_p2p_support (ifaces->data, priv->p2p_support);
+		nm_supplicant_interface_set_ft_support (ifaces->data, priv->ft_support);
+		nm_supplicant_interface_set_sha384_support (ifaces->data, priv->sha384_support);
+		nm_supplicant_interface_set_mesh_support (ifaces->data, priv->mesh_support);
 	}
 
 	_LOGD ("AP mode is %ssupported",
@@ -371,6 +394,15 @@ update_capabilities (NMSupplicantManager *self)
 	_LOGD ("P2P is %ssupported",
 	       (priv->p2p_support == NM_SUPPLICANT_FEATURE_YES) ? "" :
 	           (priv->p2p_support == NM_SUPPLICANT_FEATURE_NO) ? "not " : "possibly ");
+	_LOGD ("FT is %ssupported",
+	       (priv->ft_support == NM_SUPPLICANT_FEATURE_YES) ? "" :
+	           (priv->ft_support == NM_SUPPLICANT_FEATURE_NO) ? "not " : "possibly ");
+	_LOGD ("SHA384 is %ssupported",
+	       (priv->sha384_support == NM_SUPPLICANT_FEATURE_YES) ? "" :
+	           (priv->sha384_support == NM_SUPPLICANT_FEATURE_NO) ? "not " : "possibly ");
+	_LOGD ("Mesh is %ssupported",
+	       (priv->mesh_support == NM_SUPPLICANT_FEATURE_YES) ? "" :
+	           (priv->mesh_support == NM_SUPPLICANT_FEATURE_NO) ? "not " : "possibly ");
 
 	/* EAP-FAST */
 	priv->fast_support = NM_SUPPLICANT_FEATURE_NO;
@@ -509,6 +541,8 @@ name_owner_cb (GDBusProxy *proxy, GParamSpec *pspec, gpointer user_data)
 		priv->fast_support = NM_SUPPLICANT_FEATURE_UNKNOWN;
 		priv->pmf_support = NM_SUPPLICANT_FEATURE_UNKNOWN;
 		priv->fils_support = NM_SUPPLICANT_FEATURE_UNKNOWN;
+		priv->ft_support = NM_SUPPLICANT_FEATURE_UNKNOWN;
+		priv->sha384_support = NM_SUPPLICANT_FEATURE_UNKNOWN;
 
 		set_running (self, FALSE);
 	}