xref: /openbsd/usr.sbin/syslogd/syslogd.h (revision c1f8818c)
1*c1f8818cSbluhm /*	$OpenBSD: syslogd.h,v 1.37 2023/10/12 22:36:54 bluhm Exp $ */
2ea1c22ccSbluhm 
338182445Savsm /*
43836e309Sbluhm  * Copyright (c) 2014-2017 Alexander Bluhm <bluhm@genua.de>
538182445Savsm  * Copyright (c) 2003 Anil Madhavapeddy <anil@recoil.org>
638182445Savsm  *
738182445Savsm  * Permission to use, copy, modify, and distribute this software for any
838182445Savsm  * purpose with or without fee is hereby granted, provided that the above
938182445Savsm  * copyright notice and this permission notice appear in all copies.
1038182445Savsm  *
1138182445Savsm  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1238182445Savsm  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1338182445Savsm  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1438182445Savsm  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1538182445Savsm  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1638182445Savsm  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1738182445Savsm  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1838182445Savsm  */
1938182445Savsm 
2097f3a029Sdjm #include <sys/types.h>
2197f3a029Sdjm #include <sys/socket.h>
22d4d4d7d2Smillert #include <sys/uio.h>
2397f3a029Sdjm 
24bafa06e1Sbluhm #include <stdarg.h>
25bafa06e1Sbluhm 
262a99deb5Smartijn extern int	ZuluTime;
272a99deb5Smartijn 
2838182445Savsm /* Privilege separation */
29ece520b1Sbluhm void  priv_init(int, int, int, char **);
30ece520b1Sbluhm __dead void priv_exec(char *, int, int, int, char **);
3138182445Savsm int   priv_open_tty(const char *);
3238182445Savsm int   priv_open_log(const char *);
3338182445Savsm FILE *priv_open_utmp(void);
3438182445Savsm FILE *priv_open_config(void);
3538182445Savsm void  priv_config_parse_done(void);
3638182445Savsm int   priv_config_modified(void);
37*c1f8818cSbluhm int   priv_getaddrinfo(const char *, const char *, const char *,
38*c1f8818cSbluhm     struct sockaddr *, size_t);
39bd6df507Sbluhm int   priv_getnameinfo(struct sockaddr *, socklen_t, char *, size_t);
4038182445Savsm 
4139a8af49Sbluhm #define IOVCNT		7
42e4c12d7aSbluhm 
4338182445Savsm /* Terminal message */
44c65505c8Sbluhm #define TTYMSGTIME	1		/* timeout used by ttymsg */
45959a7adfSbluhm #define TTYMAXDELAY	256		/* max events in ttymsg */
46e4c12d7aSbluhm void ttymsg(char *, struct iovec *);
4738182445Savsm 
4838182445Savsm /* File descriptor send/recv */
4938182445Savsm void send_fd(int, int);
5038182445Savsm int  receive_fd(int);
5138182445Savsm 
52c65505c8Sbluhm #define ERRBUFSIZE	256
53bafa06e1Sbluhm void vlogmsg(int pri, const char *, const char *, va_list);
54bafa06e1Sbluhm __dead void die(int);
5538182445Savsm extern int Debug;
56314b0d41Sdjm 
57c1d2012aSdjm struct ringbuf {
58c1d2012aSdjm 	char *buf;
59c1d2012aSdjm 	size_t len, start, end;
60c1d2012aSdjm };
61c1d2012aSdjm 
62c1d2012aSdjm struct ringbuf *ringbuf_init(size_t);
63e735b9b4Sdjm void		ringbuf_free(struct ringbuf *);
64c1d2012aSdjm void		ringbuf_clear(struct ringbuf *);
65c1d2012aSdjm size_t		ringbuf_used(struct ringbuf *);
66c1d2012aSdjm int		ringbuf_append_line(struct ringbuf *, char *);
67c1d2012aSdjm ssize_t		ringbuf_to_string(char *, size_t, struct ringbuf *);
68