[PATCH 1/9] security: add virSecurityUpdateTimestampIfexists

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Peng Liang <liangpeng10@xxxxxxxxxx>
---
 src/security/security_util.c | 32 ++++++++++++++++++++++++++++++++
 src/security/security_util.h |  4 ++++
 2 files changed, 36 insertions(+)

diff --git a/src/security/security_util.c b/src/security/security_util.c
index 26a7861e2935..1b5ba2b92b09 100644
--- a/src/security/security_util.c
+++ b/src/security/security_util.c
@@ -227,6 +227,38 @@ virSecurityAddTimestamp(const char *name,
 }
 
 
+/**
+ * virSecurityUpdateTimestampIfexists:
+ * @name: security driver name
+ * @path: file name
+ *
+ * Update timestamp of @path for given security driver (@name) if the timestamp
+ * of @path exists.
+ *
+ * Returns: 0 on success,
+ *          1 if timestamp of @path doesn't exist,
+ *          -1 otherwise.
+ */
+int
+virSecurityUpdateTimestampIfexists(const char *name,
+                                   const char *path)
+{
+    g_autofree char *timestamp_name = NULL;
+    g_autofree char *timestamp_value = NULL;
+    g_autofree char *old_value = NULL;
+
+    if (!(timestamp_value = virSecurityGetTimestamp()) ||
+        !(timestamp_name = virSecurityGetTimestampAttrName(name)))
+        return -1;
+
+    if (virFileGetXAttrQuiet(path, timestamp_name, &old_value) < 0) {
+        return 1;
+    }
+
+    return virFileSetXAttr(path, timestamp_name, timestamp_value);
+}
+
+
 static int
 virSecurityRemoveTimestamp(const char *name,
                            const char *path)
diff --git a/src/security/security_util.h b/src/security/security_util.h
index 7af6f009e2ca..b66541fd92c5 100644
--- a/src/security/security_util.h
+++ b/src/security/security_util.h
@@ -33,5 +33,9 @@ virSecurityMoveRememberedLabel(const char *name,
                                const char *src,
                                const char *dst);
 
+int
+virSecurityUpdateTimestampIfexists(const char *name,
+                                   const char *path);
+
 bool
 virSecurityXATTRNamespaceDefined(void);
-- 
2.31.1





[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux