Blame shared/nm-glib-aux/nm-io-utils.h

Packit Service b23acc
// SPDX-License-Identifier: LGPL-2.1+
Packit Service b23acc
/*
Packit Service b23acc
 * Copyright (C) 2018 Red Hat, Inc.
Packit Service b23acc
 */
Packit Service b23acc
Packit Service b23acc
#ifndef __NM_IO_UTILS_H__
Packit Service b23acc
#define __NM_IO_UTILS_H__
Packit Service b23acc
Packit Service b23acc
#include "nm-macros-internal.h"
Packit Service b23acc
Packit Service b23acc
/*****************************************************************************/
Packit Service b23acc
Packit Service b23acc
/**
Packit Service b23acc
 * NMUtilsFileGetContentsFlags:
Packit Service b23acc
 * @NM_UTILS_FILE_GET_CONTENTS_FLAG_NONE: no flag
Packit Service b23acc
 * @NM_UTILS_FILE_GET_CONTENTS_FLAG_SECRET: if present, ensure that no
Packit Service b23acc
 *   data is left in memory. Essentially, it means to call explicity_bzero()
Packit Service b23acc
 *   to not leave key material on the heap (when reading secrets).
Packit Service b23acc
 */
Packit Service b23acc
typedef enum {
Packit Service b23acc
	NM_UTILS_FILE_GET_CONTENTS_FLAG_NONE   = 0,
Packit Service b23acc
	NM_UTILS_FILE_GET_CONTENTS_FLAG_SECRET = (1 << 0),
Packit Service b23acc
} NMUtilsFileGetContentsFlags;
Packit Service b23acc
Packit Service b23acc
gboolean nm_utils_fd_get_contents (int fd,
Packit Service b23acc
                                   gboolean close_fd,
Packit Service b23acc
                                   gsize max_length,
Packit Service b23acc
                                   NMUtilsFileGetContentsFlags flags,
Packit Service b23acc
                                   char **contents,
Packit Service b23acc
                                   gsize *length,
Packit Service b23acc
                                   int *out_errsv,
Packit Service b23acc
                                   GError **error);
Packit Service b23acc
Packit Service b23acc
gboolean nm_utils_file_get_contents (int dirfd,
Packit Service b23acc
                                     const char *filename,
Packit Service b23acc
                                     gsize max_length,
Packit Service b23acc
                                     NMUtilsFileGetContentsFlags flags,
Packit Service b23acc
                                     char **contents,
Packit Service b23acc
                                     gsize *length,
Packit Service b23acc
                                     int *out_errsv,
Packit Service b23acc
                                     GError **error);
Packit Service b23acc
Packit Service b23acc
gboolean nm_utils_file_set_contents (const char *filename,
Packit Service b23acc
                                     const char *contents,
Packit Service b23acc
                                     gssize length,
Packit Service b23acc
                                     mode_t mode,
Packit Service b23acc
                                     int *out_errsv,
Packit Service b23acc
                                     GError **error);
Packit Service b23acc
Packit Service b23acc
struct _NMStrBuf;
Packit Service b23acc
Packit Service b23acc
gssize nm_utils_fd_read (int fd, struct _NMStrBuf *out_string);
Packit Service b23acc
Packit Service b23acc
struct stat;
Packit Service b23acc
Packit Service b23acc
int nm_utils_file_stat (const char *filename, struct stat *out_st);
Packit Service b23acc
Packit Service b23acc
#endif /* __NM_IO_UTILS_H__ */