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