diff options
Diffstat (limited to 'src/devices/wifi/nm-device-iwd.c')
| -rw-r--r-- | src/devices/wifi/nm-device-iwd.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/devices/wifi/nm-device-iwd.c b/src/devices/wifi/nm-device-iwd.c index d3c5ae9a..d28fcdbd 100644 --- a/src/devices/wifi/nm-device-iwd.c +++ b/src/devices/wifi/nm-device-iwd.c @@ -54,6 +54,7 @@ NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceIwd, PROP_ACTIVE_ACCESS_POINT, PROP_CAPABILITIES, PROP_SCANNING, + PROP_LAST_SCAN, ); enum { @@ -79,6 +80,7 @@ typedef struct { bool can_connect:1; bool scanning:1; bool scan_requested:1; + gint64 last_scan; } NMDeviceIwdPrivate; struct _NMDeviceIwd { @@ -863,6 +865,8 @@ scan_cb (GObject *source, GAsyncResult *res, gpointer user_data) priv = NM_DEVICE_IWD_GET_PRIVATE (self); priv->scan_requested = FALSE; + priv->last_scan = nm_utils_get_monotonic_timestamp_ms (); + _notify (self, PROP_LAST_SCAN); /* On success, priv->scanning becomes true right before or right * after this callback, so the next automatic scan will be @@ -1530,6 +1534,12 @@ get_property (GObject *object, guint prop_id, case PROP_SCANNING: g_value_set_boolean (value, priv->scanning); break; + case PROP_LAST_SCAN: + g_value_set_int64 (value, + priv->last_scan > 0 + ? nm_utils_monotonic_timestamp_as_boottime (priv->last_scan, NM_UTILS_NS_PER_MSEC) + : (gint64) -1); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -1909,6 +1919,11 @@ nm_device_iwd_class_init (NMDeviceIwdClass *klass) G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + obj_properties[PROP_LAST_SCAN] = + g_param_spec_int64 (NM_DEVICE_IWD_LAST_SCAN, "", "", + -1, G_MAXINT64, -1, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); signals[SCANNING_PROHIBITED] = |