Lines Matching full:sh

63 	semanage_handle_t *sh = NULL;  in semanage_handle_create()  local
67 if ((sh = calloc(1, sizeof(semanage_handle_t))) == NULL) in semanage_handle_create()
73 if ((sh->conf = semanage_conf_parse(conf_name)) == NULL) in semanage_handle_create()
77 sh->sepolh = sepol_handle_create(); in semanage_handle_create()
78 if (!sh->sepolh) in semanage_handle_create()
80 sepol_msg_set_callback(sh->sepolh, semanage_msg_relay_handler, sh); in semanage_handle_create()
83 sh->priority = 400; in semanage_handle_create()
87 sh->do_rebuild = 0; in semanage_handle_create()
89 sh->commit_err = 0; in semanage_handle_create()
92 sh->do_reload = (is_selinux_enabled() > 0); in semanage_handle_create()
95 sh->do_check_contexts = 1; in semanage_handle_create()
98 sh->create_store = 0; in semanage_handle_create()
101 sh->timeout = SEMANAGE_COMMIT_READ_WAIT; in semanage_handle_create()
104 sh->msg_callback = semanage_msg_default_handler; in semanage_handle_create()
105 sh->msg_callback_arg = NULL; in semanage_handle_create()
109 return sh; in semanage_handle_create()
113 semanage_handle_destroy(sh); in semanage_handle_create()
117 void semanage_set_rebuild(semanage_handle_t * sh, int do_rebuild) in semanage_set_rebuild() argument
119 assert(sh != NULL); in semanage_set_rebuild()
121 sh->do_rebuild = do_rebuild; in semanage_set_rebuild()
124 void semanage_set_reload(semanage_handle_t * sh, int do_reload) in semanage_set_reload() argument
126 assert(sh != NULL); in semanage_set_reload()
128 sh->do_reload = do_reload; in semanage_set_reload()
131 void semanage_set_check_ext_changes(semanage_handle_t * sh, int do_check) in semanage_set_check_ext_changes() argument
133 assert(sh != NULL); in semanage_set_check_ext_changes()
135 sh->check_ext_changes = do_check; in semanage_set_check_ext_changes()
138 int semanage_get_hll_compiler_path(semanage_handle_t *sh, in semanage_get_hll_compiler_path() argument
142 assert(sh != NULL); in semanage_get_hll_compiler_path()
154 ERR(sh, "Could not create copy of lang_ext. Out of memory.\n"); in semanage_get_hll_compiler_path()
163 len = strlen(sh->conf->compiler_directory_path) + strlen("/") + strlen(lower_lang_ext) + 1; in semanage_get_hll_compiler_path()
167 ERR(sh, "Error allocating space for compiler path."); in semanage_get_hll_compiler_path()
172 num_printed = snprintf(compiler, len, "%s/%s", sh->conf->compiler_directory_path, lower_lang_ext); in semanage_get_hll_compiler_path()
174 ERR(sh, "Error creating compiler path."); in semanage_get_hll_compiler_path()
191 void semanage_set_create_store(semanage_handle_t * sh, int create_store) in semanage_set_create_store() argument
194 assert(sh != NULL); in semanage_set_create_store()
196 sh->create_store = create_store; in semanage_set_create_store()
200 int semanage_get_disable_dontaudit(semanage_handle_t * sh) in semanage_get_disable_dontaudit() argument
202 assert(sh != NULL); in semanage_get_disable_dontaudit()
204 return sepol_get_disable_dontaudit(sh->sepolh); in semanage_get_disable_dontaudit()
207 void semanage_set_disable_dontaudit(semanage_handle_t * sh, int disable_dontaudit) in semanage_set_disable_dontaudit() argument
209 assert(sh != NULL); in semanage_set_disable_dontaudit()
211 sepol_set_disable_dontaudit(sh->sepolh, disable_dontaudit); in semanage_set_disable_dontaudit()
215 int semanage_get_preserve_tunables(semanage_handle_t * sh) in semanage_get_preserve_tunables() argument
217 assert(sh != NULL); in semanage_get_preserve_tunables()
218 return sepol_get_preserve_tunables(sh->sepolh); in semanage_get_preserve_tunables()
221 void semanage_set_preserve_tunables(semanage_handle_t * sh, in semanage_set_preserve_tunables() argument
224 assert(sh != NULL); in semanage_set_preserve_tunables()
225 sepol_set_preserve_tunables(sh->sepolh, preserve_tunables); in semanage_set_preserve_tunables()
228 int semanage_get_ignore_module_cache(semanage_handle_t *sh) in semanage_get_ignore_module_cache() argument
230 assert(sh != NULL); in semanage_get_ignore_module_cache()
231 return sh->conf->ignore_module_cache; in semanage_get_ignore_module_cache()
234 void semanage_set_ignore_module_cache(semanage_handle_t *sh, in semanage_set_ignore_module_cache() argument
237 assert(sh != NULL); in semanage_set_ignore_module_cache()
238 sh->conf->ignore_module_cache = ignore_module_cache; in semanage_set_ignore_module_cache()
241 void semanage_set_check_contexts(semanage_handle_t * sh, int do_check_contexts) in semanage_set_check_contexts() argument
244 assert(sh != NULL); in semanage_set_check_contexts()
246 sh->do_check_contexts = do_check_contexts; in semanage_set_check_contexts()
250 uint16_t semanage_get_default_priority(semanage_handle_t *sh) in semanage_get_default_priority() argument
252 assert(sh != NULL); in semanage_get_default_priority()
253 return sh->priority; in semanage_get_default_priority()
256 int semanage_set_default_priority(semanage_handle_t *sh, uint16_t priority) in semanage_set_default_priority() argument
258 assert(sh != NULL); in semanage_set_default_priority()
262 ERR(sh, "Priority %d is invalid.", priority); in semanage_set_default_priority()
266 sh->priority = priority; in semanage_set_default_priority()
270 int semanage_is_connected(semanage_handle_t * sh) in semanage_is_connected() argument
272 assert(sh != NULL); in semanage_is_connected()
273 return sh->is_connected; in semanage_is_connected()
276 void semanage_select_store(semanage_handle_t * sh, char *storename, in semanage_select_store() argument
280 assert(sh != NULL); in semanage_select_store()
284 free(sh->conf->store_path); in semanage_select_store()
285 sh->conf->store_path = strdup(storename); in semanage_select_store()
286 assert(sh->conf->store_path); /* no way to return failure */ in semanage_select_store()
287 sh->conf->store_type = storetype; in semanage_select_store()
292 void semanage_set_store_root(semanage_handle_t *sh, const char *store_root) in semanage_set_store_root() argument
294 assert(sh != NULL); in semanage_set_store_root()
296 free(sh->conf->store_root_path); in semanage_set_store_root()
297 sh->conf->store_root_path = strdup(store_root); in semanage_set_store_root()
298 assert(sh->conf->store_root_path); /* no way to return failure */ in semanage_set_store_root()
303 int semanage_is_managed(semanage_handle_t * sh) in semanage_is_managed() argument
305 assert(sh != NULL); in semanage_is_managed()
306 if (sh->is_connected) { in semanage_is_managed()
307 ERR(sh, "Already connected."); in semanage_is_managed()
310 switch (sh->conf->store_type) { in semanage_is_managed()
312 return semanage_direct_is_managed(sh); in semanage_is_managed()
314 ERR(sh, in semanage_is_managed()
321 int semanage_mls_enabled(semanage_handle_t * sh) in semanage_mls_enabled() argument
323 assert(sh != NULL); in semanage_mls_enabled()
324 switch (sh->conf->store_type) { in semanage_mls_enabled()
326 return semanage_direct_mls_enabled(sh); in semanage_mls_enabled()
328 ERR(sh, in semanage_mls_enabled()
335 int semanage_connect(semanage_handle_t * sh) in semanage_connect() argument
337 assert(sh != NULL); in semanage_connect()
338 switch (sh->conf->store_type) { in semanage_connect()
340 if (semanage_direct_connect(sh) < 0) { in semanage_connect()
346 ERR(sh, in semanage_connect()
351 sh->is_connected = 1; in semanage_connect()
355 int semanage_access_check(semanage_handle_t * sh) in semanage_access_check() argument
357 assert(sh != NULL); in semanage_access_check()
358 switch (sh->conf->store_type) { in semanage_access_check()
360 return semanage_direct_access_check(sh); in semanage_access_check()
369 int semanage_disconnect(semanage_handle_t * sh) in semanage_disconnect() argument
371 assert(sh != NULL && sh->funcs != NULL in semanage_disconnect()
372 && sh->funcs->disconnect != NULL); in semanage_disconnect()
373 if (!sh->is_connected) { in semanage_disconnect()
376 if (sh->funcs->disconnect(sh) < 0) { in semanage_disconnect()
379 sh->is_in_transaction = 0; in semanage_disconnect()
380 sh->is_connected = 0; in semanage_disconnect()
381 sh->modules_modified = 0; in semanage_disconnect()
385 void semanage_handle_destroy(semanage_handle_t * sh) in semanage_handle_destroy() argument
387 if (sh == NULL) in semanage_handle_destroy()
390 if (sh->funcs != NULL && sh->funcs->destroy != NULL) in semanage_handle_destroy()
391 sh->funcs->destroy(sh); in semanage_handle_destroy()
392 semanage_conf_destroy(sh->conf); in semanage_handle_destroy()
393 sepol_handle_destroy(sh->sepolh); in semanage_handle_destroy()
394 free(sh); in semanage_handle_destroy()
399 int semanage_begin_transaction(semanage_handle_t * sh) in semanage_begin_transaction() argument
401 assert(sh != NULL && sh->funcs != NULL in semanage_begin_transaction()
402 && sh->funcs->begin_trans != NULL); in semanage_begin_transaction()
403 if (!sh->is_connected) { in semanage_begin_transaction()
404 ERR(sh, "Not connected."); in semanage_begin_transaction()
407 if (sh->is_in_transaction) { in semanage_begin_transaction()
411 if (sh->funcs->begin_trans(sh) < 0) { in semanage_begin_transaction()
414 sh->is_in_transaction = 1; in semanage_begin_transaction()
419 int semanage_commit(semanage_handle_t * sh) in semanage_commit() argument
422 assert(sh != NULL && sh->funcs != NULL && sh->funcs->commit != NULL); in semanage_commit()
423 if (!sh->is_in_transaction) { in semanage_commit()
424 ERR(sh, in semanage_commit()
428 retval = sh->funcs->commit(sh); in semanage_commit()
429 sh->is_in_transaction = 0; in semanage_commit()
430 sh->modules_modified = 0; in semanage_commit()