handle.c revision fb82f8ed213dd54eebc6bdd5557984c3ba870496
177534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson#include <stdlib.h>
277534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson#include <assert.h>
377534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson#include "handle.h"
477534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson#include "debug.h"
577534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson
677534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilsonsepol_handle_t *sepol_handle_create(void)
777534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson{
877534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson
977534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	sepol_handle_t *sh = malloc(sizeof(sepol_handle_t));
1077534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	if (sh == NULL)
1177534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson		return NULL;
1277534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson
1377534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	/* Set callback */
1477534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	sh->msg_callback = sepol_msg_default_handler;
1577534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	sh->msg_callback_arg = NULL;
1677534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson
1777534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	/* by default do not disable dontaudits */
1877534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	sh->disable_dontaudit = 0;
1977534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	sh->expand_consume_base = 0;
2077534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson
2177534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	/* by default needless unused branch of tunables would be discarded  */
2277534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	sh->preserve_tunables = 0;
2377534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson
2477534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	return sh;
2577534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson}
2677534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson
2777534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilsonint sepol_get_preserve_tunables(sepol_handle_t *sh)
2877534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson{
2977534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	assert(sh != NULL);
3077534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	return sh->preserve_tunables;
3177534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson}
3277534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson
3377534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilsonvoid sepol_set_preserve_tunables(sepol_handle_t * sh, int preserve_tunables)
3477534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson{
3577534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	assert(sh !=NULL);
3677534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	sh->preserve_tunables = preserve_tunables;
3777534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson}
3877534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson
3977534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilsonint sepol_get_disable_dontaudit(sepol_handle_t *sh)
4077534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson{
4177534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	assert(sh !=NULL);
4277534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	return sh->disable_dontaudit;
4377534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson}
4477534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson
4577534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilsonvoid sepol_set_disable_dontaudit(sepol_handle_t * sh, int disable_dontaudit)
4677534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson{
4777534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	assert(sh !=NULL);
4877534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	sh->disable_dontaudit = disable_dontaudit;
4977534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson}
5077534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson
5177534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilsonvoid sepol_set_expand_consume_base(sepol_handle_t *sh, int consume_base)
5277534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson{
5377534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	assert(sh != NULL);
5477534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	sh->expand_consume_base = consume_base;
5577534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson}
5677534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson
5777534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilsonvoid sepol_handle_destroy(sepol_handle_t * sh)
5877534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson{
5977534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson	free(sh);
6077534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson}
6177534c7051b30f0443b3f79e3dfe6b1d8e66b957Bob Wilson