]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/shared/selinux-util.h
label: rearrange mandatory access control(MAC) apis
[thirdparty/systemd.git] / src / shared / selinux-util.h
CommitLineData
cad45ba1
LP
1/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
2
3#pragma once
4
5/***
6 This file is part of systemd.
7
8 Copyright 2010 Lennart Poettering
9
10 systemd is free software; you can redistribute it and/or modify it
11 under the terms of the GNU Lesser General Public License as published by
12 the Free Software Foundation; either version 2.1 of the License, or
13 (at your option) any later version.
14
15 systemd is distributed in the hope that it will be useful, but
16 WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 Lesser General Public License for more details.
19
20 You should have received a copy of the GNU Lesser General Public License
21 along with systemd; If not, see <http://www.gnu.org/licenses/>.
22***/
23
66b6d9d5
WC
24#include <sys/socket.h>
25#include <stdio.h>
cad45ba1
LP
26#include <stdbool.h>
27
28bool use_selinux(void);
29void retest_selinux(void);
66b6d9d5
WC
30
31int label_init(const char *prefix);
32int label_fix_selinux(const char *path, bool ignore_enoent, bool ignore_erofs);
33void label_finish(void);
34
35int label_socket_set(const char *label);
36void label_socket_clear(void);
37
38int label_context_set(const char *path, mode_t mode);
39void label_context_clear(void);
40
41void label_free(const char *label);
42int label_mkdir_selinux(const char *path, mode_t mode);
43
44int label_get_create_label_from_exe(const char *exe, char **label);
45int label_get_our_label(char **label);
46int label_get_child_mls_label(int socket_fd, const char *exec, char **label);
47
48int label_bind(int fd, const struct sockaddr *addr, socklen_t addrlen);
49
50int label_apply(const char *path, const char *label);
51
52int label_write_one_line_file_atomic(const char *fn, const char *line);
53int label_write_env_file(const char *fname, char **l);
54int label_fopen_temporary(const char *path, FILE **_f, char **_temp_path);