handle.h revision 9a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89c
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 */ 829a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens#define DBASE_COUNT 23 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 1059a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens#define DBASE_POLICY_SEUSERS 18 1069a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens#define DBASE_POLICY_NODES 19 1079a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens#define DBASE_POLICY_IBPKEYS 20 1089a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens#define DBASE_POLICY_IBENDPORTS 21 10913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 11013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle/* Active kernel policy */ 1119a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens#define DBASE_ACTIVE_BOOLEANS 22 11213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t dbase[DBASE_COUNT]; 11313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle}; 11413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 11513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle/* === Local modifications === */ 11613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 11713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_user_base_dbase_local(semanage_handle_t * handle) 11813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 11913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_USERS_BASE]; 12013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 12113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 12213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 12313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_user_extra_dbase_local(semanage_handle_t * handle) 12413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 12513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_USERS_EXTRA]; 12613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 12713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 12813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 12913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_user_dbase_local(semanage_handle_t * handle) 13013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 13113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_USERS]; 13213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 13313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 13413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 13513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_port_dbase_local(semanage_handle_t * handle) 13613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 13713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_PORTS]; 13813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 13913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 14013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 1416a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens dbase_config_t * semanage_ibpkey_dbase_local(semanage_handle_t * handle) 1426a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens{ 1436a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens return &handle->dbase[DBASE_LOCAL_IBPKEYS]; 1446a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens} 1456a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens 1466a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgensstatic inline 1479a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens dbase_config_t * semanage_ibendport_dbase_local(semanage_handle_t * handle) 1489a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens{ 1499a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens return &handle->dbase[DBASE_LOCAL_IBENDPORTS]; 1509a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens} 1519a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens 1529a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgensstatic inline 15313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_iface_dbase_local(semanage_handle_t * handle) 15413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 15513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_INTERFACES]; 15613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 15713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 15813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 15913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_bool_dbase_local(semanage_handle_t * handle) 16013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 16113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_BOOLEANS]; 16213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 16313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 16413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 16513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_fcontext_dbase_local(semanage_handle_t * handle) 16613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 16713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_FCONTEXTS]; 16813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 16913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 17013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 17113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_seuser_dbase_local(semanage_handle_t * handle) 17213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 17313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_SEUSERS]; 17413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 17513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 17613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 17713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_node_dbase_local(semanage_handle_t * handle) 17813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 17913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_LOCAL_NODES]; 18013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 18113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 18213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle/* === Policy + Local modifications === */ 18313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 18413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_user_base_dbase_policy(semanage_handle_t * handle) 18513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 18613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_USERS_BASE]; 18713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 18813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 18913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 19013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_user_extra_dbase_policy(semanage_handle_t * 19113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle handle) 19213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 19313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_USERS_EXTRA]; 19413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 19513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 19613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 19713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_user_dbase_policy(semanage_handle_t * handle) 19813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 19913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_USERS]; 20013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 20113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 20213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 20313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_port_dbase_policy(semanage_handle_t * handle) 20413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 20513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_PORTS]; 20613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 20713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 20813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 2096a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens dbase_config_t * semanage_ibpkey_dbase_policy(semanage_handle_t * handle) 2106a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens{ 2116a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens return &handle->dbase[DBASE_POLICY_IBPKEYS]; 2126a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens} 2136a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgens 2146a7a5aafe52aa7dbd2daab1645829fd9821e716fDaniel Jurgensstatic inline 2159a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens dbase_config_t * semanage_ibendport_dbase_policy(semanage_handle_t * handle) 2169a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens{ 2179a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens return &handle->dbase[DBASE_POLICY_IBENDPORTS]; 2189a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens} 2199a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgens 2209a3d2c7a9b78f7ca04977a4c5a6bda4c8875c89cDaniel Jurgensstatic inline 22113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_iface_dbase_policy(semanage_handle_t * handle) 22213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 22313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_INTERFACES]; 22413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 22513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 22613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 22713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_bool_dbase_policy(semanage_handle_t * handle) 22813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 22913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_BOOLEANS]; 23013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 23113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 23213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 23313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_fcontext_dbase_policy(semanage_handle_t * handle) 23413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 23513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_FCONTEXTS]; 23613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 23713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 23813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 23913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_seuser_dbase_policy(semanage_handle_t * handle) 24013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 24113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_SEUSERS]; 24213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 24313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 24413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 24513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_node_dbase_policy(semanage_handle_t * handle) 24613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 24713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_POLICY_NODES]; 24813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 24913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 25013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle/* === Active kernel policy === */ 25113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestatic inline 25213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t * semanage_bool_dbase_active(semanage_handle_t * handle) 25313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 25413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return &handle->dbase[DBASE_ACTIVE_BOOLEANS]; 25513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 25613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 25713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#endif 258