xref: /freebsd/lib/libcasper/services/cap_syslog/cap_syslog.3 (revision cf037972ea8863e2bab7461d77345367d2c1e054)
1eca37937SMariusz Zaborski.\" Copyright (c) 2018 Mariusz Zaborski <oshogbo@FreeBSD.org>
2eca37937SMariusz Zaborski.\" All rights reserved.
3eca37937SMariusz Zaborski.\"
4eca37937SMariusz Zaborski.\" Redistribution and use in source and binary forms, with or without
5eca37937SMariusz Zaborski.\" modification, are permitted provided that the following conditions
6eca37937SMariusz Zaborski.\" are met:
7eca37937SMariusz Zaborski.\" 1. Redistributions of source code must retain the above copyright
8eca37937SMariusz Zaborski.\"    notice, this list of conditions and the following disclaimer.
9eca37937SMariusz Zaborski.\" 2. Redistributions in binary form must reproduce the above copyright
10eca37937SMariusz Zaborski.\"    notice, this list of conditions and the following disclaimer in the
11eca37937SMariusz Zaborski.\"    documentation and/or other materials provided with the distribution.
12eca37937SMariusz Zaborski.\"
13eca37937SMariusz Zaborski.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
14eca37937SMariusz Zaborski.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15eca37937SMariusz Zaborski.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16eca37937SMariusz Zaborski.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
17eca37937SMariusz Zaborski.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18eca37937SMariusz Zaborski.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19eca37937SMariusz Zaborski.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20eca37937SMariusz Zaborski.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21eca37937SMariusz Zaborski.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22eca37937SMariusz Zaborski.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23eca37937SMariusz Zaborski.\" SUCH DAMAGE.
24eca37937SMariusz Zaborski.\"
25*cf037972SAlan Somers.Dd December 6, 2023
26eca37937SMariusz Zaborski.Dt CAP_SYSLOG 3
27eca37937SMariusz Zaborski.Os
28eca37937SMariusz Zaborski.Sh NAME
293251ad29SGordon Bergling.Nm cap_syslog ,
303251ad29SGordon Bergling.Nm cap_vsyslog ,
313251ad29SGordon Bergling.Nm cap_openlog ,
323251ad29SGordon Bergling.Nm cap_closelog ,
33eca37937SMariusz Zaborski.Nm cap_setlogmask
34eca37937SMariusz Zaborski.Nd "library for syslog in capability mode"
35eca37937SMariusz Zaborski.Sh LIBRARY
36eca37937SMariusz Zaborski.Lb libcap_syslog
37eca37937SMariusz Zaborski.Sh SYNOPSIS
38eca37937SMariusz Zaborski.In libcasper.h
39eca37937SMariusz Zaborski.In casper/cap_syslog.h
40eca37937SMariusz Zaborski.Ft void
41eca37937SMariusz Zaborski.Fn cap_syslog "cap_channel_t *chan" "int pri" "const char *fmt" "..."
42eca37937SMariusz Zaborski.Ft void
43eca37937SMariusz Zaborski.Fn cap_vsyslog "cap_channel_t *chan" "int priority" "const char *fmt" "va_list ap"
44eca37937SMariusz Zaborski.Ft void
45eca37937SMariusz Zaborski.Fn cap_openlog "cap_channel_t *chan" "const char *ident" "int logopt" "int facility"
46eca37937SMariusz Zaborski.Ft void
47eca37937SMariusz Zaborski.Fn cap_closelog "cap_channel_t *chan"
48eca37937SMariusz Zaborski.Ft int
49eca37937SMariusz Zaborski.Fn cap_setlogmask "cap_channel_t *chan" "int maskpri"
50eca37937SMariusz Zaborski.Sh DESCRIPTION
51eca37937SMariusz ZaborskiThe functions
52eca37937SMariusz Zaborski.Fn cap_syslog
53eca37937SMariusz Zaborski.Fn cap_vsyslog
54eca37937SMariusz Zaborski.Fn cap_openlog
55eca37937SMariusz Zaborski.Fn cap_closelog
56eca37937SMariusz Zaborski.Fn cap_setlogmask
57eca37937SMariusz Zaborskiare respectively equivalent to
58eca37937SMariusz Zaborski.Xr syslog 3 ,
59eca37937SMariusz Zaborski.Xr vsyslog 3 ,
60eca37937SMariusz Zaborski.Xr openlog 3 ,
61eca37937SMariusz Zaborski.Xr closelog 3 ,
62eca37937SMariusz Zaborski.Xr setlogmask 3
63eca37937SMariusz Zaborskiexcept that the connection to the
64eca37937SMariusz Zaborski.Nm system.syslog
65eca37937SMariusz Zaborskiservice needs to be provided.
66*cf037972SAlan Somers.Pp
67*cf037972SAlan SomersAll of these functions are reentrant but not thread-safe.
68*cf037972SAlan SomersThat is, they may be called from separate threads only with different
69*cf037972SAlan Somers.Vt cap_channel_t
70*cf037972SAlan Somersarguments or with synchronization.
71eca37937SMariusz Zaborski.Sh EXAMPLES
72eca37937SMariusz ZaborskiThe following example first opens a capability to casper and then uses this
73eca37937SMariusz Zaborskicapability to create the
74eca37937SMariusz Zaborski.Nm system.syslog
75eca37937SMariusz Zaborskicasper service to log messages.
76eca37937SMariusz Zaborski.Bd -literal
77eca37937SMariusz Zaborskicap_channel_t *capcas, *capsyslog;
78eca37937SMariusz Zaborski
79eca37937SMariusz Zaborski/* Open capability to Casper. */
80eca37937SMariusz Zaborskicapcas = cap_init();
81eca37937SMariusz Zaborskiif (capcas == NULL)
82eca37937SMariusz Zaborski	err(1, "Unable to contact Casper");
83eca37937SMariusz Zaborski
84eca37937SMariusz Zaborski/* Enter capability mode sandbox. */
85eca37937SMariusz Zaborskiif (cap_enter() < 0 && errno != ENOSYS)
86eca37937SMariusz Zaborski	err(1, "Unable to enter capability mode");
87eca37937SMariusz Zaborski
88eca37937SMariusz Zaborski/* Use Casper capability to create capability to the system.syslog service. */
89eca37937SMariusz Zaborskicapsyslog = cap_service_open(capcas, "system.syslog");
90eca37937SMariusz Zaborskiif (capsyslog == NULL)
91eca37937SMariusz Zaborski	err(1, "Unable to open system.syslog service");
92eca37937SMariusz Zaborski
93eca37937SMariusz Zaborski/* Close Casper capability, we don't need it anymore. */
94eca37937SMariusz Zaborskicap_close(capcas);
95eca37937SMariusz Zaborski
96eca37937SMariusz Zaborski/* Let's log something. */
97eca37937SMariusz Zaborskicap_syslog(capsyslog, LOG_NOTICE, "System logs from capability mode.");
98eca37937SMariusz Zaborski.Ed
99eca37937SMariusz Zaborski.Sh SEE ALSO
100eca37937SMariusz Zaborski.Xr cap_enter 2 ,
101eca37937SMariusz Zaborski.Xr closelog 3 ,
102eca37937SMariusz Zaborski.Xr err 3 ,
103eca37937SMariusz Zaborski.Xr openlog 3 ,
1043251ad29SGordon Bergling.Xr setlogmask 3 ,
105eca37937SMariusz Zaborski.Xr syslog 3 ,
106eca37937SMariusz Zaborski.Xr vsyslog 3 ,
10785ebe1f1SMariusz Zaborski.Xr capsicum 4 ,
10885ebe1f1SMariusz Zaborski.Xr nv 9
109421f325eSGordon Bergling.Sh HISTORY
110421f325eSGordon BerglingThe
111421f325eSGordon Bergling.Nm cap_syslog
112421f325eSGordon Berglingservice first appeared in
113421f325eSGordon Bergling.Fx 10.3 .
114eca37937SMariusz Zaborski.Sh AUTHORS
115eca37937SMariusz Zaborski.An Mariusz Zaborski Aq Mt oshogbo@FreeBSD.org
116