aboutgitcodebugslistschat
path: root/util.h
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2022-10-14 15:25:32 +1100
committerStefano Brivio <sbrivio@redhat.com>2022-10-15 02:10:36 +0200
commitea5936dd3f6293fb761e3b670a0f40233e5396fd (patch)
treeff4744bab430784cd416bc063902022018e905bf /util.h
parent096e48669b56273d44a3242d7af4840b38335961 (diff)
downloadpasst-ea5936dd3f6293fb761e3b670a0f40233e5396fd.tar
passt-ea5936dd3f6293fb761e3b670a0f40233e5396fd.tar.gz
passt-ea5936dd3f6293fb761e3b670a0f40233e5396fd.tar.bz2
passt-ea5936dd3f6293fb761e3b670a0f40233e5396fd.tar.lz
passt-ea5936dd3f6293fb761e3b670a0f40233e5396fd.tar.xz
passt-ea5936dd3f6293fb761e3b670a0f40233e5396fd.tar.zst
passt-ea5936dd3f6293fb761e3b670a0f40233e5396fd.zip
Replace FWRITE with a function
In a few places we use the FWRITE() macro to open a file, replace it's contents with a given string and close it again. There's no real reason this needs to be a macro rather than just a function though. Turn it into a function 'write_file()' and make some ancillary cleanups while we're there: - Add a return code so the caller can handle giving a useful error message - Handle the case of short write()s (unlikely, but possible) - Add O_TRUNC, to make sure we replace the existing contents entirely Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'util.h')
-rw-r--r--util.h13
1 files changed, 1 insertions, 12 deletions
diff --git a/util.h b/util.h
index 4d1b375..27829b1 100644
--- a/util.h
+++ b/util.h
@@ -53,18 +53,6 @@
#define TMPDIR "/tmp"
#endif
-#define FWRITE(path, buf, str) \
- do { \
- int flags = O_WRONLY | O_CLOEXEC; \
- int fd = open(path, flags); \
- \
- if (fd < 0 || \
- write(fd, buf, strlen(buf)) != (int)strlen(buf)) \
- warn(str); \
- if (fd >= 0) \
- close(fd); \
- } while (0)
-
#define V4 0
#define V6 1
#define IP_VERSIONS 2
@@ -212,5 +200,6 @@ int ns_enter(const struct ctx *c);
void write_pidfile(int fd, pid_t pid);
int __daemon(int pidfile_fd, int devnull_fd);
int fls(unsigned long x);
+int write_file(const char *path, const char *buf);
#endif /* UTIL_H */