NAME¶
semanage_iterate - SELinux Management API
SYNOPSIS¶
The following iterate function is supported for any semanage record.
Replace the function and object name as necessary.
extern int ITERATE_FUNCTION (
semanage_handle_t *handle,
int (*handler) (
const semanage_OBJECT_t *object,
void *varg),
void *handler_arg);
DESCRIPTION¶
- Behavior:
- The iterate function will execute the specified handler
over all objects in the selected location. An arbitrary argument can be
passed into the handler function along with each object.
The object passed in is property of the libsemanage library, and may not be
modified or preserved - use semanage_OBJECT_clone if that is
necessary.
The handler code may not invoke any semanage write requests for the same
object type (i.e. modifying the underlying store is not allowed). The
iterate function is reentrant only while inside a transaction (see
semanage_begin_transaction ). It is not safe to execute other
semanage read or write requests within iterate if not inside a
transaction. The handler may return -1 to signal error exit, 0 to signal
continue, and 1 to signal successful exit early (the iterate function will
stop accordingly).
- Parameters:
- The handle is used to track persistent state across
semanage calls, and for error reporting. The handler is the
function to execute, with handler_arg as its second parameter, and
each object as its first parameter.
- Requirements:
- This function requires an semanage connection to be
established (see semanage_connect(3) )
RETURN VALUE¶
In case of failure, -1 is returned, and the semanage error callback is invoked,
describing the error. Otherwise a non-negative integer is returned (a commit
number). The same number will be returned by all other semanage object read
calls until the next commit.
SEE ALSO¶
semanage_handle_create(3),
semanage_connect(3),