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