xref: /netbsd-src/external/ibm-public/postfix/dist/src/util/msg_logger.h (revision 33881f779a77dce6440bdc44610d94de75bebefe)
1 /*	$NetBSD: msg_logger.h,v 1.2 2020/03/18 19:05:21 christos Exp $	*/
2 
3 #ifndef _MSG_LOGGER_H_INCLUDED_
4 #define _MSG_LOGGER_H_INCLUDED_
5 
6 /*++
7 /* NAME
8 /*	msg_logger 3h
9 /* SUMMARY
10 /*	direct diagnostics to logger service
11 /* SYNOPSIS
12 /*	#include <msg_logger.h>
13 /* DESCRIPTION
14 /* .nf
15 
16  /*
17   * System library.
18   */
19 #include <stdarg.h>
20 
21  /*
22   * Utility library.
23   */
24 #include <check_arg.h>
25 
26  /*
27   * External interface.
28   */
29 typedef void (*MSG_LOGGER_FALLBACK_FN) (const char *);
30 
31 extern void msg_logger_init(const char *, const char *, const char *,
32 			            MSG_LOGGER_FALLBACK_FN);
33 extern void msg_logger_control(int,...);
34 
35 /* Internal-only API: type-unchecked arguments. */
36 #define MSG_LOGGER_CTL_END		0
37 #define MSG_LOGGER_CTL_FALLBACK_ONLY	1
38 #define MSG_LOGGER_CTL_FALLBACK_FN	2
39 #define MSG_LOGGER_CTL_DISABLE		3
40 #define MSG_LOGGER_CTL_CONNECT_NOW	4
41 
42 /* Safer API: type-checked arguments, external use. */
43 #define CA_MSG_LOGGER_CTL_END		MSG_LOGGER_CTL_END
44 #define CA_MSG_LOGGER_CTL_FALLBACK_ONLY	MSG_LOGGER_CTL_FALLBACK_ONLY
45 #define CA_MSG_LOGGER_CTL_FALLBACK_FN(v) \
46 	MSG_LOGGER_CTL_FALLBACK_FN, CHECK_VAL(MSG_LOGGER_CTL, \
47 		MSG_LOGGER_FALLBACK_FN, (v))
48 #define CA_MSG_LOGGER_CTL_DISABLE	MSG_LOGGER_CTL_DISABLE
49 #define CA_MSG_LOGGER_CTL_CONNECT_NOW	MSG_LOGGER_CTL_CONNECT_NOW
50 
51 CHECK_VAL_HELPER_DCL(MSG_LOGGER_CTL, MSG_LOGGER_FALLBACK_FN);
52 
53 /* LICENSE
54 /* .ad
55 /* .fi
56 /*	The Secure Mailer license must be distributed with this software.
57 /* AUTHOR(S)
58 /*	Wietse Venema
59 /*	Google, Inc.
60 /*	111 8th Avenue
61 /*	New York, NY 10011, USA
62 /*--*/
63 
64 #endif
65