NAME

dirfile_protect --- modify the protection level of a dirfile fragment

SYNOPSIS

#include <getdata.h>
int dirfile_protect(DIRFILE *dirfile, int protection_level, int fragment_index);

DESCRIPTION

The dirfile_protect() function sets the advisory protection level of the format file fragment specified by fragment_index to protection_level in the dirfile(5) database specified by dirfile.

The protection_level argument should be one of the following:

GD_PROTECT_NONE
Indicating that the fragment should not be protected at all.
GD_PROTECT_FORMAT
Indicating that the fragment's metadata should be protected.
GD_PROTECT_DATA
Indicating that the fragment's binary data should be protected.
GD_PROTECT_ALL
Indicating that both the fragment's metadata and its binary data should be protected. This symbol is equivalent to the bitwise or of GD_PROTECT_FORMAT and GD_PROTECT_DATA. In addition to being simply a valid fragment index, fragment_index may also be the special value GD_ALL_FRAGMENTS, which indicates that the protection level of all fragments in the database should be changed.

RETURN VALUE

Upon successful completion, dirfile_protect() returns zero. On error, it returns -1 and sets the dirfile error to a non-zero error value. Possible error values are:
GD_E_ACCMODE
The specified dirfile was opened read-only.
GD_E_BAD_DIRFILE
The supplied dirfile was invalid.
GD_E_BAD_INDEX
The supplied index was out of range.
GD_E_BAD_PROTECTION
The supplied protection level was invalid. The dirfile error may be retrieved by calling get_error(3). A descriptive error string for the last error encountered can be obtained from a call to get_error_string(3).

NOTES

This is the only GetData function which ignores the (existing) protection level of a format file fragment.

SEE ALSO

dirfile_open(3), getdata(3), get_error(3), get_error_string(3), get_protection(3), dirfile(5), dirfile-format(5)