From: Lennart Poettering Date: Tue, 15 Oct 2024 13:32:55 +0000 (+0200) Subject: fileio: clean up write_string_file() naming X-Git-Tag: v257-rc1~212^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8a0adc973a24b24a06f797749724d1f79844032c;p=thirdparty%2Fsystemd.git fileio: clean up write_string_file() naming let's rename the "_ts" flavour of these calls "_full" instead, exposing the full functionality. And then keep two more minimal versions around: one "_at" (which has the ts parameter suppressed, but keeps the dir_fd one). And one without suffix (which supresses both). Do the same for the label versions of these calls. --- diff --git a/src/basic/fileio.c b/src/basic/fileio.c index 24357c1ef86..bf1603de0ea 100644 --- a/src/basic/fileio.c +++ b/src/basic/fileio.c @@ -118,7 +118,7 @@ FILE* fmemopen_unlocked(void *buf, size_t size, const char *mode) { return f; } -int write_string_stream_ts( +int write_string_stream_full( FILE *f, const char *line, WriteStringFileFlags flags, @@ -234,7 +234,7 @@ static int write_string_file_atomic_at( if (r < 0) return r; - r = write_string_stream_ts(f, line, flags, ts); + r = write_string_stream_full(f, line, flags, ts); if (r < 0) goto fail; @@ -261,7 +261,7 @@ fail: return r; } -int write_string_file_ts_at( +int write_string_file_full( int dir_fd, const char *fn, const char *line, @@ -314,7 +314,7 @@ int write_string_file_ts_at( if (flags & WRITE_STRING_FILE_DISABLE_BUFFER) setvbuf(f, NULL, _IONBF, 0); - r = write_string_stream_ts(f, line, flags, ts); + r = write_string_stream_full(f, line, flags, ts); if (r < 0) goto fail; diff --git a/src/basic/fileio.h b/src/basic/fileio.h index 6986ed32766..dc514e3cccc 100644 --- a/src/basic/fileio.h +++ b/src/basic/fileio.h @@ -51,25 +51,21 @@ DIR* take_fdopendir(int *dfd); FILE* open_memstream_unlocked(char **ptr, size_t *sizeloc); FILE* fmemopen_unlocked(void *buf, size_t size, const char *mode); -int write_string_stream_ts(FILE *f, const char *line, WriteStringFileFlags flags, const struct timespec *ts); +int write_string_stream_full(FILE *f, const char *line, WriteStringFileFlags flags, const struct timespec *ts); static inline int write_string_stream(FILE *f, const char *line, WriteStringFileFlags flags) { - return write_string_stream_ts(f, line, flags, NULL); + return write_string_stream_full(f, line, flags, /* ts= */ NULL); } -int write_string_file_ts_at(int dir_fd, const char *fn, const char *line, WriteStringFileFlags flags, const struct timespec *ts); -static inline int write_string_file_ts(const char *fn, const char *line, WriteStringFileFlags flags, const struct timespec *ts) { - return write_string_file_ts_at(AT_FDCWD, fn, line, flags, ts); +int write_string_file_full(int dir_fd, const char *fn, const char *line, WriteStringFileFlags flags, const struct timespec *ts); +static inline int write_string_file(const char *fn, const char *line, WriteStringFileFlags flags) { + return write_string_file_full(AT_FDCWD, fn, line, flags, /* ts= */ NULL); } static inline int write_string_file_at(int dir_fd, const char *fn, const char *line, WriteStringFileFlags flags) { - return write_string_file_ts_at(dir_fd, fn, line, flags, NULL); -} -static inline int write_string_file(const char *fn, const char *line, WriteStringFileFlags flags) { - return write_string_file_ts(fn, line, flags, NULL); + return write_string_file_full(dir_fd, fn, line, flags, /* ts= */ NULL); } +int write_string_filef(const char *fn, WriteStringFileFlags flags, const char *format, ...) _printf_(3, 4); int write_base64_file_at(int dir_fd, const char *fn, const struct iovec *data, WriteStringFileFlags flags); -int write_string_filef(const char *fn, WriteStringFileFlags flags, const char *format, ...) _printf_(3, 4); - int read_one_line_file_at(int dir_fd, const char *filename, char **ret); static inline int read_one_line_file(const char *filename, char **ret) { return read_one_line_file_at(AT_FDCWD, filename, ret); diff --git a/src/shared/fileio-label.c b/src/shared/fileio-label.c index 572b8f62ad6..39de54fa256 100644 --- a/src/shared/fileio-label.c +++ b/src/shared/fileio-label.c @@ -6,14 +6,14 @@ #include "fileio.h" #include "selinux-util.h" -int write_string_file_atomic_label_ts(const char *fn, const char *line, struct timespec *ts) { +int write_string_file_full_label(int atfd, const char *fn, const char *line, WriteStringFileFlags flags, struct timespec *ts) { int r; - r = mac_selinux_create_file_prepare(fn, S_IFREG); + r = mac_selinux_create_file_prepare_at(atfd, fn, S_IFREG); if (r < 0) return r; - r = write_string_file_ts(fn, line, WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_ATOMIC, ts); + r = write_string_file_full(atfd, fn, line, flags, ts); mac_selinux_create_file_clear(); diff --git a/src/shared/fileio-label.h b/src/shared/fileio-label.h index 03b4a164174..5aa5c40224e 100644 --- a/src/shared/fileio-label.h +++ b/src/shared/fileio-label.h @@ -7,9 +7,14 @@ * optimize linking: This way, -lselinux is needed only for the callers of these functions that need selinux, but not * for all */ -int write_string_file_atomic_label_ts(const char *fn, const char *line, struct timespec *ts); +#include "fileio.h" + +int write_string_file_full_label(int atfd, const char *fn, const char *line, WriteStringFileFlags flags, struct timespec *ts); +static inline int write_string_file_at_label(int atfd, const char *fn, const char *line, WriteStringFileFlags flags) { + return write_string_file_full_label(atfd, fn, line, flags, /* ts= */ NULL); +} static inline int write_string_file_atomic_label(const char *fn, const char *line) { - return write_string_file_atomic_label_ts(fn, line, NULL); + return write_string_file_at_label(AT_FDCWD, fn, line, WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_ATOMIC); } int create_shutdown_run_nologin_or_warn(void); diff --git a/src/update-done/update-done.c b/src/update-done/update-done.c index f448b3b1d17..436bae639b2 100644 --- a/src/update-done/update-done.c +++ b/src/update-done/update-done.c @@ -29,7 +29,7 @@ static int apply_timestamp(const char *path, struct timespec *ts) { timespec_load_nsec(ts)) < 0) return log_oom(); - r = write_string_file_atomic_label_ts(path, message, ts); + r = write_string_file_full_label(AT_FDCWD, path, message, WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_ATOMIC, ts); if (r == -EROFS) log_debug_errno(r, "Cannot create \"%s\", file system is read-only.", path); else if (r < 0)