Lines Matching full:handle
15 #include "handle.h"
21 static char *semanage_user_roles(semanage_handle_t * handle, const char *sename) {
29 if (semanage_user_key_create(handle, sename, &key) >= 0) {
30 if (semanage_user_query(handle, key, &user) >= 0) {
31 if (semanage_user_get_roles(handle,
54 static int semanage_seuser_audit(semanage_handle_t * handle,
74 roles = semanage_user_roles(handle, sename);
79 proles = semanage_user_roles(handle, psename);
118 int semanage_seuser_modify_local(semanage_handle_t * handle,
123 void *callback = (void *) handle->msg_callback;
124 dbase_config_t *dconfig = semanage_seuser_dbase_local(handle);
134 rc = semanage_seuser_clone(handle, data, &new);
139 if (!mls_range && semanage_mls_enabled(handle)) {
142 rc = semanage_user_key_create(handle, sename, &ukey);
146 rc = semanage_user_query(handle, ukey, &u);
150 rc = semanage_seuser_set_mlsrange(handle, new, mls_range);
157 handle->msg_callback = NULL;
158 (void) semanage_seuser_query(handle, key, &previous);
159 handle->msg_callback = callback;
160 rc = dbase_modify(handle, dconfig, key, new);
161 if (semanage_seuser_audit(handle, new, previous, AUDIT_ROLE_ASSIGN, rc == 0) < 0)
170 int semanage_seuser_del_local(semanage_handle_t * handle,
175 dbase_config_t *dconfig = semanage_seuser_dbase_local(handle);
176 rc = dbase_del(handle, dconfig, key);
177 semanage_seuser_query(handle, key, &seuser);
178 if (semanage_seuser_audit(handle, NULL, seuser, AUDIT_ROLE_REMOVE, rc == 0) < 0)
185 int semanage_seuser_query_local(semanage_handle_t * handle,
190 dbase_config_t *dconfig = semanage_seuser_dbase_local(handle);
191 return dbase_query(handle, dconfig, key, response);
194 int semanage_seuser_exists_local(semanage_handle_t * handle,
199 dbase_config_t *dconfig = semanage_seuser_dbase_local(handle);
200 return dbase_exists(handle, dconfig, key, response);
203 int semanage_seuser_count_local(semanage_handle_t * handle,
207 dbase_config_t *dconfig = semanage_seuser_dbase_local(handle);
208 return dbase_count(handle, dconfig, response);
211 int semanage_seuser_iterate_local(semanage_handle_t * handle,
217 dbase_config_t *dconfig = semanage_seuser_dbase_local(handle);
218 return dbase_iterate(handle, dconfig, handler, handler_arg);
223 int semanage_seuser_list_local(semanage_handle_t * handle,
228 dbase_config_t *dconfig = semanage_seuser_dbase_local(handle);
229 return dbase_list(handle, dconfig, records, count);
233 semanage_handle_t *handle;
246 semanage_handle_t *handle = arg->handle;
256 if (semanage_user_key_create(handle, sename, &key) < 0)
258 if (semanage_user_exists(handle, key, &exists) < 0)
261 ERR(handle, "selinux user %s does not exist", sename);
269 if (semanage_user_query(handle, key, &user) < 0)
273 if (sepol_mls_check(handle->sepolh, policydb, mls_range) < 0)
275 if (sepol_mls_contains(handle->sepolh, policydb,
280 ERR(handle, "MLS range %s for Unix user %s "
287 ERR(handle, "MLS is disabled, but MLS range %s "
297 ERR(handle, "could not check if seuser mapping for %s is valid", name);
304 ERR(handle, "seuser mapping [%s -> (%s, %s)] is invalid",
307 ERR(handle, "seuser mapping [%s -> %s] is invalid",
318 int hidden semanage_seuser_validate_local(semanage_handle_t * handle,
323 arg.handle = handle;
325 return semanage_seuser_iterate_local(handle, validate_handler, &arg);