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