selabel_open
is used to initialize a labeling handle to be used for lookup operations. The
backend
argument specifies which backend is to be opened; the list of current backends appears in
BACKENDS
below.
The
options
argument should be NULL or a pointer to an array of
selinux_opt
structures of length
nopt:
struct selinux_opt {
int type;
const char *value;
};
The available option types are described in
GLOBAL OPTIONS
below as well as in the documentation for each individual backend. The return value on success is a non-NULL value for use in subsequent label operations.
selabel_close
terminates use of a handle, freeing any internal resources associated with it. After this call has been made, the handle must not be used again.
GLOBAL OPTIONS
Global options which may be passed to
selabel_open
include the following:
SELABEL_OPT_UNUSED
The option with a type code of zero is a no-op. Thus an array of options may be initizalized to zero and any untouched elements will not cause an error.
SELABEL_OPT_VALIDATE
A non-null value for this option enables context validation. By default,
security_check_context(3)
is used; a custom validation function can be provided via
selinux_set_callback(3).
Note that an invalid context may not be treated as an error unless it is actually encountered during a lookup operation.
BACKENDS
SELABEL_CTX_FILE
File contexts backend, described in
selabel_file(5).
SELABEL_CTX_MEDIA
Media contexts backend, described in
selabel_media(5).
SELABEL_CTX_X
X Windows contexts backend, described in
selabel_x(5).
SELABEL_CTX_DB
Database objects contexts backend, described in
selabel_db(5).
RETURN VALUE
A non-NULL handle value is returned on success. On error, NULL is returned and
errno
is set appropriately.