about summary refs log tree commit diff
path: root/libnm/nm-device-wifi.c
diff options
context:
space:
mode:
authorSebastien Bacher <seb128@ubuntu.com>2018-08-24 11:00:09 +0200
committerSebastien Bacher <seb128@ubuntu.com>2018-08-24 11:06:47 +0200
commitb7db94545968c37886b7111d8c85f62eb063fbb4 (patch)
tree7c2aedd497b1fdcb26bf9d49f98cc63a530baf2e /libnm/nm-device-wifi.c
parent9d5cdc3adde9e7e57bf5a0e754e563b6a9e8e513 (diff)
parentcaf1db9d6fbc056cc6c76a24574890f6c7895f3d (diff)
Import Debian changes 1.12.2-0ubuntu3
network-manager (1.12.2-0ubuntu3) cosmic; urgency=medium

  * debian/rules:
    - use --with-libnm-glib, the default reversed since that's a legacy
      library but we still need it for unity-control-center

network-manager (1.12.2-0ubuntu2) cosmic; urgency=medium

  * debian/patches/git-newglib-test.patch:
    - backport upstream commit to fix the tests with the new glib 

network-manager (1.12.2-0ubuntu1) cosmic; urgency=medium

  * New upstream version
  * d/p/libnm-register-empty-NMClient-and-NetworkManager-when-loa.patch,
    d/p/e91f1a7d2a6b8400b6b331d5b72287dcb5164a39.patch,
    d/p/git_thunderbolt_connect.patch:
    - removed, those changes are in the new version
  * Backport Debian changes
  * Update symbols file for libnm0
  * Enable iwd support
  * Drop version requirements when oldstable ships a newer version
  * Drop dh_strip override, the dbgsym migration is done
  * Rebase patches
  * Make sure the example server.conf is actually installed
  * Update install path for plugins, it now includes a version number
  * Drop libnl3 build dependency.
    Upstream has copied the code directly from libnl3 for the few functions it
    needs with a few small modifications.
  * Drop libiw build dependency.
    Hasn't been needed for a long time and was simply a left over from older
    releases.
  * Bump Standards-Version to 4.1.5
  * Fix compile error due to NM_AVAILABLE_IN_1_12_2 macro (Closes: #905372)
Diffstat (limited to 'libnm/nm-device-wifi.c')
-rw-r--r--libnm/nm-device-wifi.c49
1 files changed, 46 insertions, 3 deletions
diff --git a/libnm/nm-device-wifi.c b/libnm/nm-device-wifi.c
index e4ea94e9..848e297c 100644
--- a/libnm/nm-device-wifi.c
+++ b/libnm/nm-device-wifi.c
@@ -59,6 +59,7 @@ typedef struct {
 	NMAccessPoint *active_ap;
 	NMDeviceWifiCapabilities wireless_caps;
 	GPtrArray *aps;
+	gint64 last_scan;
 
 	RequestScanInfo *scan_info;
 } NMDeviceWifiPrivate;
@@ -72,6 +73,7 @@ enum {
 	PROP_ACTIVE_ACCESS_POINT,
 	PROP_WIRELESS_CAPABILITIES,
 	PROP_ACCESS_POINTS,
+	PROP_LAST_SCAN,
 
 	LAST_PROP
 };
@@ -267,6 +269,28 @@ nm_device_wifi_get_access_point_by_path (NMDeviceWifi *device,
 	return ap;
 }
 
+/**
+ * nm_device_wifi_get_last_scan:
+ * @device: a #NMDeviceWifi
+ *
+ * Returns the timestamp (in CLOCK_BOOTTIME milliseconds) for the last finished
+ * network scan. A value of -1 means the device never scanned for access points.
+ *
+ * Use nm_utils_get_timestamp_msec() to obtain current time value suitable for
+ * comparing to this value.
+ *
+ * Returns: the last scan time in seconds
+ *
+ * Since: 1.12
+ **/
+gint64
+nm_device_wifi_get_last_scan (NMDeviceWifi *device)
+{
+	g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), -1);
+
+	return NM_DEVICE_WIFI_GET_PRIVATE (device)->last_scan;
+}
+
 static GVariant *
 prepare_scan_options (GVariant *options)
 {
@@ -666,6 +690,7 @@ nm_device_wifi_init (NMDeviceWifi *device)
 	                  NULL);
 
 	priv->aps = g_ptr_array_new ();
+	priv->last_scan = -1;
 }
 
 static void
@@ -698,6 +723,9 @@ get_property (GObject *object,
 	case PROP_ACCESS_POINTS:
 		g_value_take_boxed (value, _nm_utils_copy_object_array (nm_device_wifi_get_access_points (self)));
 		break;
+	case PROP_LAST_SCAN:
+		g_value_set_int64 (value, nm_device_wifi_get_last_scan (self));
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -739,6 +767,7 @@ init_dbus (NMObject *object)
 		{ NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT,  &priv->active_ap, NULL, NM_TYPE_ACCESS_POINT },
 		{ NM_DEVICE_WIFI_CAPABILITIES,         &priv->wireless_caps },
 		{ NM_DEVICE_WIFI_ACCESS_POINTS,        &priv->aps, NULL, NM_TYPE_ACCESS_POINT, "access-point" },
+		{ NM_DEVICE_WIFI_LAST_SCAN,            &priv->last_scan },
 		{ NULL },
 	};
 
@@ -887,11 +916,9 @@ nm_device_wifi_class_init (NMDeviceWifiClass *wifi_class)
 		                     G_PARAM_STATIC_STRINGS));
 
 	/**
-	 * NMDeviceWifi:access-points:
+	 * NMDeviceWifi:access-points: (type GPtrArray(NMAccessPoint))
 	 *
 	 * List of all Wi-Fi access points the device can see.
-	 *
-	 * Element-type: NMAccessPoint
 	 **/
 	g_object_class_install_property
 		(object_class, PROP_ACCESS_POINTS,
@@ -900,6 +927,22 @@ nm_device_wifi_class_init (NMDeviceWifiClass *wifi_class)
 		                     G_PARAM_READABLE |
 		                     G_PARAM_STATIC_STRINGS));
 
+	/**
+	 * NMDeviceWifi:last-scan:
+	 *
+	 * The timestamp (in CLOCK_BOOTTIME seconds) for the last finished
+	 * network scan. A value of -1 means the device never scanned for
+	 * access points.
+	 *
+	 * Since: 1.12
+	 **/
+	g_object_class_install_property
+	        (object_class, PROP_LAST_SCAN,
+	         g_param_spec_int64 (NM_DEVICE_WIFI_LAST_SCAN, "", "",
+	                             -1, G_MAXINT64, -1,
+	                             G_PARAM_READABLE |
+	                             G_PARAM_STATIC_STRINGS));
+
 	/* signals */
 
 	/**