return f;
}
-int write_string_stream_ts(
+int write_string_stream_full(
FILE *f,
const char *line,
WriteStringFileFlags flags,
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;
return r;
}
-int write_string_file_ts_at(
+int write_string_file_full(
int dir_fd,
const char *fn,
const char *line,
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;
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);
#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();
* 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);