FreeBSD manual

download PDF document: cap_setlogmask.3.pdf

CAP_SYSLOG(3) FreeBSD Library Functions Manual CAP_SYSLOG(3)
NAME cap_syslog, cap_vsyslog, cap_openlog, cap_closelog, cap_setlogmask - library for syslog in capability mode
LIBRARY library "libcap_syslog"
SYNOPSIS #include <libcasper.h> #include <casper/cap_syslog.h>
void cap_syslog(cap_channel_t *chan, int pri, const char *fmt, ...);
void cap_vsyslog(cap_channel_t *chan, int priority, const char *fmt, va_list ap);
void cap_openlog(cap_channel_t *chan, const char *ident, int logopt, int facility);
void cap_closelog(cap_channel_t *chan);
int cap_setlogmask(cap_channel_t *chan, int maskpri);
DESCRIPTION The functions cap_syslog() cap_vsyslog() cap_openlog() cap_closelog() cap_setlogmask() are respectively equivalent to syslog(3), vsyslog(3), openlog(3), closelog(3), setlogmask(3) except that the connection to the system.syslog service needs to be provided.
All of these functions are reentrant but not thread-safe. That is, they may be called from separate threads only with different cap_channel_t arguments or with synchronization.
EXAMPLES The following example first opens a capability to casper and then uses this capability to create the system.syslog casper service to log messages.
cap_channel_t *capcas, *capsyslog;
/* Open capability to Casper. */ capcas = cap_init(); if (capcas == NULL) err(1, "Unable to contact Casper");
/* Enter capability mode sandbox. */ if (cap_enter() < 0 && errno != ENOSYS) err(1, "Unable to enter capability mode");
/* Use Casper capability to create capability to the system.syslog service. */ capsyslog = cap_service_open(capcas, "system.syslog"); if (capsyslog == NULL)
SEE ALSO cap_enter(2), closelog(3), err(3), openlog(3), setlogmask(3), syslog(3), vsyslog(3), capsicum(4), nv(9)
HISTORY The cap_syslog service first appeared in FreeBSD 10.3.
AUTHORS Mariusz Zaborski <oshogbo@FreeBSD.org>
FreeBSD 14.2-RELEASE December 6, 2023 FreeBSD 14.2-RELEASE