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