113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle/* Author: Joshua Brindle <jbrindle@tresys.com> 213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * Jason Tang <jtang@tresys.com> 313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * Ivan Gyurdiev <ivg2@cornell.edu> 413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * 513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * Copyright (C) 2005 Tresys Technology, LLC 613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * Copyright (C) 2005 Red Hat Inc. 713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * 813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * This library is free software; you can redistribute it and/or 913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * modify it under the terms of the GNU Lesser General Public 1013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * License as published by the Free Software Foundation; either 1113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * version 2.1 of the License, or (at your option) any later version. 1213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * 1313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * This library is distributed in the hope that it will be useful, 1413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * but WITHOUT ANY WARRANTY; without even the implied warranty of 1513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * Lesser General Public License for more details. 1713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * 1813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * You should have received a copy of the GNU Lesser General Public 1913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * License along with this library; if not, write to the Free Software 2013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 2113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle */ 2213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 2313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#ifndef _SEMANAGE_INTERNAL_HANDLE_H_ 2413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#define _SEMANAGE_INTERNAL_HANDLE_H_ 2513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 2673430e5542dc3f22eee54a41ad54318ad14d1cabCaleb Case#include <stdint.h> 2713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include <stddef.h> 2813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include "handle_internal.h" 2913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include <sepol/handle.h> 3013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include "modules.h" 3113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include "semanage_conf.h" 3213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include "database.h" 3313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include "direct_api.h" 3413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include "policy.h" 3513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 3613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestruct semanage_handle { 3713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle int con_id; /* Connection ID */ 3813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 3913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle /* Error handling */ 4013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle int msg_level; 4113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle const char *msg_channel; 4213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle const char *msg_fname; 4313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#ifdef __GNUC__ 4413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle __attribute__ ((format(printf, 3, 4))) 4513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#endif 4613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle void (*msg_callback) (void *varg, 4713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle semanage_handle_t * handle, const char *fmt, ...); 4813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle void *msg_callback_arg; 4913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 5013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle /* Direct vs Server specific handle */ 5113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle union { 5213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle struct semanage_direct_handle direct; 5313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle } u; 5413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 5513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle /* Libsepol handle */ 5613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle sepol_handle_t *sepolh; 5713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 5813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle semanage_conf_t *conf; 5973430e5542dc3f22eee54a41ad54318ad14d1cabCaleb Case 6073430e5542dc3f22eee54a41ad54318ad14d1cabCaleb Case uint16_t priority; 6113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle int is_connected; 6213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle int is_in_transaction; 6313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle int do_reload; /* whether to reload policy after commit */ 6413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle int do_rebuild; /* whether to rebuild policy if there were no changes */ 6513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle int modules_modified; 6613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle int create_store; /* whether to create the store if it does not exist 6713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * this will only have an effect on direct connections */ 68bd74c23c7beaf340d3e21f84a253e3c994fe3623Chad Sellers int do_check_contexts; /* whether to run setfiles check the file contexts file */ 6913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 7013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle /* This timeout is used for transactions and waiting for lock 7113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle -1 means wait indefinetely 7213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 0 means return immediately 7313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle >0 means wait that many seconds */ 7413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle int timeout; 7513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 7613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle /* these function pointers will point to the appropriate 7713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * routine given the connection type. think of these as 7813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * simulating polymorphism for non-OO languages. */ 7913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle struct semanage_policy_table *funcs; 8013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 8113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle /* Object databases */ 82bc161a9e942911a93ae893d7cfed732f172241a0Vit Mojzis#define DBASE_COUNT 24 8313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 8413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle/* Local modifications */ 8513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#define DBASE_LOCAL_USERS_BASE 0 8613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#define DBASE_LOCAL_USERS_EXTRA 1 8713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#define DBASE_LOCAL_USERS 2 8813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#define DBASE_LOCAL_PORTS 3 8913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#define DBASE_LOCAL_INTERFACES 4 9013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#define DBASE_LOCAL_BOOLEANS 5 9113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#define DBASE_LOCAL_FCONTEXTS 6 9213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#define DBASE_LOCAL_SEUSERS 7 9313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#define DBASE_LOCAL_NODES 8 946a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens#define DBASE_LOCAL_IBPKEYS 9 959a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens#define DBASE_LOCAL_IBENDPORTS 10 9613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 9713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle/* Policy + Local modifications */ 989a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens#define DBASE_POLICY_USERS_BASE 11 999a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens#define DBASE_POLICY_USERS_EXTRA 12 1009a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens#define DBASE_POLICY_USERS 13 1019a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens#define DBASE_POLICY_PORTS 14 1029a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens#define DBASE_POLICY_INTERFACES 15 1039a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens#define DBASE_POLICY_BOOLEANS 16 1049a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens#define DBASE_POLICY_FCONTEXTS 17 105bc161a9e942911a93ae893d7cfed732f172241a0Vit Mojzis#define DBASE_POLICY_FCONTEXTS_H 18 106bc161a9e942911a93ae893d7cfed732f172241a0Vit Mojzis#define DBASE_POLICY_SEUSERS 19 107bc161a9e942911a93ae893d7cfed732f172241a0Vit Mojzis#define DBASE_POLICY_NODES 20 108bc161a9e942911a93ae893d7cfed732f172241a0Vit Mojzis#define DBASE_POLICY_IBPKEYS 21 109bc161a9e942911a93ae893d7cfed732f172241a0Vit Mojzis#define DBASE_POLICY_IBENDPORTS 22 11013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 11113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle/* Active kernel policy */ 112bc161a9e942911a93ae893d7cfed732f172241a0Vit Mojzis#define DBASE_ACTIVE_BOOLEANS 23 11313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t dbase[DBASE_COUNT]; 11413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle}; 11513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 11613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle/* === Local modifications === */ 11713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 11813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_user_base_dbase_local(semanage_handle_t * handle) 11913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 12013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_USERS_BASE]; 12113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 12213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 12313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 12413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_user_extra_dbase_local(semanage_handle_t * handle) 12513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 12613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_USERS_EXTRA]; 12713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 12813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 12913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 13013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_user_dbase_local(semanage_handle_t * handle) 13113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 13213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_USERS]; 13313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 13413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 13513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 13613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_port_dbase_local(semanage_handle_t * handle) 13713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 13813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_PORTS]; 13913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 14013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 14113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 1426a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens dbase_config_t * semanage_ibpkey_dbase_local(semanage_handle_t * handle) 1436a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens{ 1446a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens return &handle->dbase[DBASE_LOCAL_IBPKEYS]; 1456a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens} 1466a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens 1476a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgensstatic inline 1489a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens dbase_config_t * semanage_ibendport_dbase_local(semanage_handle_t * handle) 1499a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens{ 1509a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens return &handle->dbase[DBASE_LOCAL_IBENDPORTS]; 1519a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens} 1529a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens 1539a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgensstatic inline 15413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_iface_dbase_local(semanage_handle_t * handle) 15513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 15613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_INTERFACES]; 15713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 15813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 15913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 16013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_bool_dbase_local(semanage_handle_t * handle) 16113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 16213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_BOOLEANS]; 16313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 16413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 16513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 16613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_fcontext_dbase_local(semanage_handle_t * handle) 16713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 16813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_FCONTEXTS]; 16913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 17013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 17113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 17213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_seuser_dbase_local(semanage_handle_t * handle) 17313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 17413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_SEUSERS]; 17513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 17613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 17713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 17813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_node_dbase_local(semanage_handle_t * handle) 17913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 18013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_NODES]; 18113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 18213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 18313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle/* === Policy + Local modifications === */ 18413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 18513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_user_base_dbase_policy(semanage_handle_t * handle) 18613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 18713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_USERS_BASE]; 18813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 18913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 19013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 19113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_user_extra_dbase_policy(semanage_handle_t * 19213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle handle) 19313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 19413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_USERS_EXTRA]; 19513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 19613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 19713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 19813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_user_dbase_policy(semanage_handle_t * handle) 19913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 20013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_USERS]; 20113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 20213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 20313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 20413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_port_dbase_policy(semanage_handle_t * handle) 20513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 20613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_PORTS]; 20713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 20813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 20913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 2106a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens dbase_config_t * semanage_ibpkey_dbase_policy(semanage_handle_t * handle) 2116a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens{ 2126a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens return &handle->dbase[DBASE_POLICY_IBPKEYS]; 2136a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens} 2146a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens 2156a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgensstatic inline 2169a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens dbase_config_t * semanage_ibendport_dbase_policy(semanage_handle_t * handle) 2179a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens{ 2189a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens return &handle->dbase[DBASE_POLICY_IBENDPORTS]; 2199a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens} 2209a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens 2219a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgensstatic inline 22213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_iface_dbase_policy(semanage_handle_t * handle) 22313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 22413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_INTERFACES]; 22513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 22613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 22713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 22813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_bool_dbase_policy(semanage_handle_t * handle) 22913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 23013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_BOOLEANS]; 23113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 23213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 23313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 23413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_fcontext_dbase_policy(semanage_handle_t * handle) 23513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 23613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_FCONTEXTS]; 23713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 23813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 23913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 240bc161a9e942911a93ae893d7cfed732f172241a0Vit Mojzis dbase_config_t * semanage_fcontext_dbase_homedirs(semanage_handle_t * handle) 241bc161a9e942911a93ae893d7cfed732f172241a0Vit Mojzis{ 242bc161a9e942911a93ae893d7cfed732f172241a0Vit Mojzis return &handle->dbase[DBASE_POLICY_FCONTEXTS_H]; 243bc161a9e942911a93ae893d7cfed732f172241a0Vit Mojzis} 244bc161a9e942911a93ae893d7cfed732f172241a0Vit Mojzis 245bc161a9e942911a93ae893d7cfed732f172241a0Vit Mojzisstatic inline 24613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_seuser_dbase_policy(semanage_handle_t * handle) 24713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 24813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_SEUSERS]; 24913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 25013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 25113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 25213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_node_dbase_policy(semanage_handle_t * handle) 25313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 25413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_NODES]; 25513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 25613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 25713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle/* === Active kernel policy === */ 25813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 25913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_bool_dbase_active(semanage_handle_t * handle) 26013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 26113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_ACTIVE_BOOLEANS]; 26213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 26313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 26413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#endif 265