has virSecretDef stored as XML in "$basename.xml". If a value of the
secret is defined, it is stored as base64 (with no formatting) in
"$basename.base64". "$basename" is in both cases the base64-encoded UUID. */
-
-static int
-virSecretRewriteFile(int fd,
- void *opaque)
-{
- char *data = opaque;
-
- if (safewrite(fd, data, strlen(data)) < 0)
- return -1;
-
- return 0;
-}
-
-
int
virSecretObjSaveConfig(virSecretObjPtr secret)
{
if (!(xml = virSecretDefFormat(secret->def)))
goto cleanup;
- if (virFileRewrite(secret->configFile, S_IRUSR | S_IWUSR,
- virSecretRewriteFile, xml) < 0)
+ if (virFileRewriteStr(secret->configFile, S_IRUSR | S_IWUSR, xml) < 0)
goto cleanup;
ret = 0;
if (!(base64 = virStringEncodeBase64(secret->value, secret->value_size)))
goto cleanup;
- if (virFileRewrite(secret->base64File, S_IRUSR | S_IWUSR,
- virSecretRewriteFile, base64) < 0)
+ if (virFileRewriteStr(secret->base64File, S_IRUSR | S_IWUSR, base64) < 0)
goto cleanup;
ret = 0;
virFileResolveAllLinks;
virFileResolveLink;
virFileRewrite;
+virFileRewriteStr;
virFileSanitizePath;
virFileSkipRoot;
virFileStripSuffix;
exit(status);
}
-static int
-customLeaseRewriteFile(int fd, void *opaque)
-{
- char **data = opaque;
-
- if (safewrite(fd, *data, strlen(*data)) < 0)
- return -1;
-
- return 0;
-}
-
/* Flags denoting actions for a lease */
enum virLeaseActionFlags {
VIR_LEASE_ACTION_ADD, /* Create new lease */
}
/* Write to file */
- if (virFileRewrite(custom_lease_file, 0644,
- customLeaseRewriteFile, &leases_str) < 0)
+ if (virFileRewriteStr(custom_lease_file, 0644, leases_str) < 0)
goto cleanup;
break;
virFileRewrite(const char *path,
mode_t mode,
virFileRewriteFunc rewrite,
- void *opaque)
+ const void *opaque)
{
char *newfile = NULL;
int fd = -1;
}
+static int
+virFileRewriteStrHelper(int fd, const void *opaque)
+{
+ const char *data = opaque;
+
+ if (safewrite(fd, data, strlen(data)) < 0)
+ return -1;
+
+ return 0;
+}
+
+
+int
+virFileRewriteStr(const char *path,
+ mode_t mode,
+ const char *str)
+{
+ return virFileRewrite(path, mode,
+ virFileRewriteStrHelper, str);
+}
+
+
int virFileTouch(const char *path, mode_t mode)
{
int fd = -1;
int virFileLock(int fd, bool shared, off_t start, off_t len, bool waitForLock);
int virFileUnlock(int fd, off_t start, off_t len);
-typedef int (*virFileRewriteFunc)(int fd, void *opaque);
+typedef int (*virFileRewriteFunc)(int fd, const void *opaque);
int virFileRewrite(const char *path,
mode_t mode,
virFileRewriteFunc rewrite,
- void *opaque);
+ const void *opaque);
+int virFileRewriteStr(const char *path,
+ mode_t mode,
+ const char *str);
int virFileTouch(const char *path, mode_t mode);
};
static int
-virXMLRewriteFile(int fd, void *opaque)
+virXMLRewriteFile(int fd, const void *opaque)
{
- struct virXMLRewriteFileData *data = opaque;
+ const struct virXMLRewriteFileData *data = opaque;
if (data->warnCommand) {
if (virXMLEmitWarning(fd, data->warnName, data->warnCommand) < 0)