NAME¶
gd_alter_protection — modify the protection level of a dirfile fragment
SYNOPSIS¶
#include <getdata.h>
int gd_alter_protection(DIRFILE *dirfile,
int protection_level, int
fragment_index);
DESCRIPTION¶
The
gd_alter_protection() function sets the advisory protection level of
the format specification fragment given 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,
gd_alter_protection() 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
gd_error(3). A descriptive
error string for the last error encountered can be obtained from a call to
gd_error_string(3).
NOTES¶
This is the only GetData function which ignores the (existing) protection level
of a format specification fragment.
SEE ALSO¶
gd_open(3),
gd_error(3),
gd_error_string(3),
gd_protection(3),
dirfile(5),
dirfile-format(5)