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