]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/core/selinux-access.h
Set $NOTIFY_SOCKET for control procs if NotifyAccess=all
[thirdparty/systemd.git] / src / core / selinux-access.h
CommitLineData
e2417e41
DW
1/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
2
cad45ba1 3#pragma once
e2417e41
DW
4
5/***
6 This file is part of systemd.
7
8 Copyright 2012 Dan Walsh
9
10 systemd is free software; you can redistribute it and/or modify it
03e22642
KS
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
e2417e41
DW
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
03e22642 18 Lesser General Public License for more details.
e2417e41 19
03e22642 20 You should have received a copy of the GNU Lesser General Public License
e2417e41
DW
21 along with systemd; If not, see <http://www.gnu.org/licenses/>.
22***/
23
718db961
LP
24#include "sd-bus.h"
25#include "bus-error.h"
26#include "bus-util.h"
e94937df 27#include "manager.h"
ffc227c9
LP
28
29void selinux_access_free(void);
30
4f4f7036 31int selinux_generic_access_check(sd_bus_message *message, const char *path, const char *permission, sd_bus_error *error);
cad45ba1 32
e94937df
LN
33int selinux_unit_access_check_strv(char **units, sd_bus_message *message, Manager *m, const char *permission, sd_bus_error *error);
34
cad45ba1
LP
35#ifdef HAVE_SELINUX
36
4f4f7036
LP
37#define selinux_access_check(message, permission, error) \
38 selinux_generic_access_check((message), NULL, (permission), (error))
39
40#define selinux_unit_access_check(unit, message, permission, error) \
41 ({ \
42 Unit *_unit = (unit); \
43 selinux_generic_access_check((message), _unit->fragment_path ?: _unit->fragment_path, (permission), (error)); \
44 })
cad45ba1
LP
45
46#else
47
4f4f7036
LP
48#define selinux_access_check(message, permission, error) 0
49#define selinux_unit_access_check(unit, message, permission, error) 0
cad45ba1 50
e2417e41 51#endif