summary refs log tree commit diff
path: root/src/settings/nm-settings-connection.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2017-07-12 17:57:30 +0200
committerMichael Biebl <biebl@debian.org>2017-07-12 17:57:30 +0200
commitb9f0451fa35393ceedf6d9d20b78c43578ebea5d (patch)
tree417afcdd717020ad44e25fadee4b89de23316e83 /src/settings/nm-settings-connection.c
parentc333f062ddcba9b35330647bf6cbd0a07f2d786e (diff)
New upstream version 1.8.2 upstream/1.8.2
Diffstat (limited to 'src/settings/nm-settings-connection.c')
-rw-r--r--src/settings/nm-settings-connection.c39
1 files changed, 21 insertions, 18 deletions
diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c
index 0cb2920c..45a1b664 100644
--- a/src/settings/nm-settings-connection.c
+++ b/src/settings/nm-settings-connection.c
@@ -2129,6 +2129,7 @@ nm_settings_connection_set_flags_all (NMSettingsConnection *self, NMSettingsConn
 
 	old_flags = priv->flags;
 	if (old_flags != flags) {
+		_LOGT ("update settings-connection flags to 0x%x (was 0x%x)", (guint) flags, (guint) priv->flags);
 		priv->flags = flags;
 		_notify (self, PROP_FLAGS);
 		if (NM_FLAGS_HAS (old_flags, NM_SETTINGS_CONNECTION_FLAGS_UNSAVED) != NM_FLAGS_HAS (flags, NM_SETTINGS_CONNECTION_FLAGS_UNSAVED))
@@ -2316,33 +2317,35 @@ void
 nm_settings_connection_read_and_fill_timestamp (NMSettingsConnection *self)
 {
 	NMSettingsConnectionPrivate *priv = NM_SETTINGS_CONNECTION_GET_PRIVATE (self);
+	gs_unref_keyfile GKeyFile *timestamps_file = NULL;
+	gs_free_error GError *error = NULL;
+	gs_free char *tmp_str = NULL;
 	const char *connection_uuid;
-	guint64 timestamp = 0;
-	GKeyFile *timestamps_file;
-	GError *err = NULL;
-	char *tmp_str;
+	gint64 timestamp;
 
 	g_return_if_fail (NM_IS_SETTINGS_CONNECTION (self));
 
-	/* Get timestamp from database file */
 	timestamps_file = g_key_file_new ();
-	g_key_file_load_from_file (timestamps_file, SETTINGS_TIMESTAMPS_FILE, G_KEY_FILE_KEEP_COMMENTS, NULL);
+	if (!g_key_file_load_from_file (timestamps_file, SETTINGS_TIMESTAMPS_FILE, G_KEY_FILE_KEEP_COMMENTS, &error)) {
+		_LOGD ("failed to read connection timestamp: %s", error->message);
+		return;
+	}
+
 	connection_uuid = nm_settings_connection_get_uuid (self);
-	tmp_str = g_key_file_get_value (timestamps_file, "timestamps", connection_uuid, &err);
-	if (tmp_str) {
-		timestamp = g_ascii_strtoull (tmp_str, NULL, 10);
-		g_free (tmp_str);
+	tmp_str = g_key_file_get_value (timestamps_file, "timestamps", connection_uuid, &error);
+	if (!tmp_str) {
+		_LOGD ("failed to read connection timestamp: %s", error->message);
+		return;
 	}
 
-	/* Update connection's timestamp */
-	if (!err) {
-		priv->timestamp = timestamp;
-		priv->timestamp_set = TRUE;
-	} else {
-		_LOGD ("failed to read connection timestamp: %s", err->message);
-		g_clear_error (&err);
+	timestamp = _nm_utils_ascii_str_to_int64 (tmp_str, 10, 0, G_MAXINT64, -1);
+	if (timestamp < 0) {
+		_LOGD ("failed to read connection timestamp: %s", "invalid number");
+		return;
 	}
-	g_key_file_free (timestamps_file);
+
+	priv->timestamp = timestamp;
+	priv->timestamp_set = TRUE;
 }
 
 /**