passt: Relicense to GPL 2.0, or any later version
In practical terms, passt doesn't benefit from the additional
protection offered by the AGPL over the GPL, because it's not
suitable to be executed over a computer network.
Further, restricting the distribution under the version 3 of the GPL
wouldn't provide any practical advantage either, as long as the passt
codebase is concerned, and might cause unnecessary compatibility
dilemmas.
Change licensing terms to the GNU General Public License Version 2,
or any later version, with written permission from all current and
past contributors, namely: myself, David Gibson, Laine Stump, Andrea
Bolognani, Paul Holzinger, Richard W.M. Jones, Chris Kuhn, Florian
Weimer, Giuseppe Scrivano, Stefan Hajnoczi, and Vasiliy Ulyanov.
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
2023-04-05 18:11:44 +00:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0-or-later
|
2022-09-24 07:53:15 +00:00
|
|
|
* Copyright (c) 2022 Red Hat GmbH
|
|
|
|
* Author: Stefano Brivio <sbrivio@redhat.com>
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef LOG_H
|
|
|
|
#define LOG_H
|
|
|
|
|
2024-06-14 17:00:27 +00:00
|
|
|
#include <stdbool.h>
|
2023-10-13 04:50:28 +00:00
|
|
|
#include <syslog.h>
|
|
|
|
|
2022-10-06 12:51:04 +00:00
|
|
|
#define LOGFILE_SIZE_DEFAULT (1024 * 1024UL)
|
|
|
|
#define LOGFILE_CUT_RATIO 30 /* When full, cut ~30% size */
|
|
|
|
#define LOGFILE_SIZE_MIN (5UL * MAX(BUFSIZ, PAGE_SIZE))
|
|
|
|
|
2024-08-12 08:20:34 +00:00
|
|
|
void vlogmsg(bool newline, bool cont, int pri, const char *format, va_list ap);
|
|
|
|
void logmsg(bool newline, bool cont, int pri, const char *format, ...)
|
|
|
|
__attribute__((format(printf, 4, 5)));
|
2024-06-14 22:25:23 +00:00
|
|
|
void logmsg_perror(int pri, const char *format, ...)
|
|
|
|
__attribute__((format(printf, 2, 3)));
|
|
|
|
|
2024-08-12 08:20:34 +00:00
|
|
|
#define err(...) logmsg(true, false, LOG_ERR, __VA_ARGS__)
|
|
|
|
#define warn(...) logmsg(true, false, LOG_WARNING, __VA_ARGS__)
|
|
|
|
#define info(...) logmsg(true, false, LOG_INFO, __VA_ARGS__)
|
|
|
|
#define debug(...) logmsg(true, false, LOG_DEBUG, __VA_ARGS__)
|
2023-10-13 04:50:28 +00:00
|
|
|
|
2024-08-12 08:20:34 +00:00
|
|
|
#define err_perror(...) logmsg_perror( LOG_ERR, __VA_ARGS__)
|
|
|
|
#define warn_perror(...) logmsg_perror( LOG_WARNING, __VA_ARGS__)
|
|
|
|
#define info_perror(...) logmsg_perror( LOG_INFO, __VA_ARGS__)
|
|
|
|
#define debug_perror(...) logmsg_perror( LOG_DEBUG, __VA_ARGS__)
|
2022-09-24 07:53:15 +00:00
|
|
|
|
2023-02-27 03:06:19 +00:00
|
|
|
#define die(...) \
|
|
|
|
do { \
|
|
|
|
err(__VA_ARGS__); \
|
|
|
|
exit(EXIT_FAILURE); \
|
|
|
|
} while (0)
|
|
|
|
|
2024-06-14 22:25:23 +00:00
|
|
|
#define die_perror(...) \
|
|
|
|
do { \
|
|
|
|
err_perror(__VA_ARGS__); \
|
|
|
|
exit(EXIT_FAILURE); \
|
|
|
|
} while (0)
|
|
|
|
|
2022-09-24 07:53:15 +00:00
|
|
|
extern int log_trace;
|
2024-06-14 17:00:27 +00:00
|
|
|
extern bool log_conf_parsed;
|
log, passt: Keep printing to stderr when passt is running in foreground
There are two cases where we want to stop printing to stderr: if it's
closed, and if pasta spawned a shell (and --debug wasn't given).
But if passt is running in foreground, we currently stop to report any
message, even error messages, once we're ready, as reported by
Laurent, because we set the log_runtime flag, which we use to indicate
we're ready, regardless of whether we're running in foreground or not.
Turn that flag (back) to log_stderr, and set it only when we really
want to stop printing to stderr.
Reported-by: Laurent Vivier <lvivier@redhat.com>
Fixes: afd9cdc9bb48 ("log, passt: Always print to stderr before initialisation is complete")
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
2024-08-06 12:07:37 +00:00
|
|
|
extern bool log_stderr;
|
2024-07-24 15:39:55 +00:00
|
|
|
extern struct timespec log_start;
|
2024-06-14 17:00:27 +00:00
|
|
|
|
2022-09-24 07:53:15 +00:00
|
|
|
void trace_init(int enable);
|
2022-10-12 15:31:37 +00:00
|
|
|
#define trace(...) \
|
2022-09-24 07:53:15 +00:00
|
|
|
do { \
|
|
|
|
if (log_trace) \
|
2022-10-12 15:31:37 +00:00
|
|
|
debug(__VA_ARGS__); \
|
2022-09-24 07:53:15 +00:00
|
|
|
} while (0)
|
|
|
|
|
|
|
|
void __openlog(const char *ident, int option, int facility);
|
2022-10-06 12:51:04 +00:00
|
|
|
void logfile_init(const char *name, const char *path, size_t size);
|
2024-07-24 14:36:17 +00:00
|
|
|
void passt_vsyslog(bool newline, int pri, const char *format, va_list ap);
|
2022-09-24 07:53:15 +00:00
|
|
|
void __setlogmask(int mask);
|
|
|
|
|
|
|
|
#endif /* LOG_H */
|