]> git.proxmox.com Git - systemd.git/blame - src/core/selinux-access.h
Imported Upstream version 218
[systemd.git] / src / core / selinux-access.h
CommitLineData
663996b3
MS
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 2012 Dan Walsh
9
10 systemd is free software; you can redistribute it and/or modify it
14228c0d
MB
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
663996b3
MS
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
14228c0d 18 Lesser General Public License for more details.
663996b3 19
14228c0d 20 You should have received a copy of the GNU Lesser General Public License
663996b3
MS
21 along with systemd; If not, see <http://www.gnu.org/licenses/>.
22***/
23
60f067b4
JS
24#include "sd-bus.h"
25#include "bus-error.h"
26#include "bus-util.h"
5eef597e 27#include "manager.h"
663996b3 28
5eef597e 29void mac_selinux_access_free(void);
663996b3 30
5eef597e
MP
31int mac_selinux_generic_access_check(sd_bus_message *message, const char *path, const char *permission, sd_bus_error *error);
32
33int mac_selinux_unit_access_check_strv(char **units, sd_bus_message *message, Manager *m, const char *permission, sd_bus_error *error);
663996b3
MS
34
35#ifdef HAVE_SELINUX
36
5eef597e
MP
37#define mac_selinux_access_check(message, permission, error) \
38 mac_selinux_generic_access_check((message), NULL, (permission), (error))
60f067b4 39
5eef597e 40#define mac_selinux_unit_access_check(unit, message, permission, error) \
60f067b4
JS
41 ({ \
42 Unit *_unit = (unit); \
f47781d8 43 mac_selinux_generic_access_check((message), _unit->source_path ?: _unit->fragment_path, (permission), (error)); \
60f067b4 44 })
663996b3
MS
45
46#else
47
5eef597e
MP
48#define mac_selinux_access_check(message, permission, error) 0
49#define mac_selinux_unit_access_check(unit, message, permission, error) 0
663996b3
MS
50
51#endif