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