bsde_add_rule,
bsde_get_rule,
bsde_set_rule,
bsde_delete_rule — file
system firewall rules list management
File System Firewall Interface Library
(libugidfw, -lugidfw)
#include
<ugidfw.h>
int
bsde_add_rule(int *rulenum,
struct mac_bsdextended_rule *rule,
size_t buflen, char
*errstr);
int
bsde_get_rule(int rulenum,
struct mac_bsdextended_rule *rule,
size_t errlen, char
*errstr);
int
bsde_set_rule(int rulenum,
struct mac_bsdextended_rule *rule,
size_t errlen, char
*errstr);
int
bsde_delete_rule(int
rulenum, size_t
errlen, char
*errstr);
The
bsde_add_rule()
function fills the next available rule (in struct
mac_bsdextended_rule form, either from
bsde_get_rule() or
bsde_parse_rule(3)).
If an error occurs, *errstr is filled with the error
string (up to errlen characters, including the
terminating NUL). If successful and
rulenum is
non-NULL, the rule number
used will be returned in *rulenum.
The
bsde_get_rule()
function fills in *rule with the rule numbered
rulenum. If an error occurs,
*errstr is filled in with the error string (up to
errlen characters, including the terminating
NUL).
The
bsde_set_rule()
function fills the slot numbered rulenum with the
specified rule (in struct mac_bsdextended_rule form,
either from bsde_get_rule() or
bsde_parse_rule(3)).
If an error occurs, *errstr is filled with the error
string (up to errlen characters, including the
terminating NUL).
The
bsde_delete_rule()
function deletes the rule numbered rulenum. If an
error occurs, *errstr is filled with the error string
(up to errlen characters, including the terminating
NUL).
The bsde_get_rule(),
bsde_set_rule(), and
bsde_delete_rule() functions return 0 if successful;
otherwise the value -1 is returned and the value of
*errstr is filled in as documented in
DESCRIPTION.
This software was contributed to the
FreeBSD Project by Network Associates Labs, the
Security Research Division of Network Associates Inc. under DARPA/SPAWAR
contract N66001-01-C-8035 (“CBOSS”), as part of the DARPA
CHATS research program.