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