/*
- * Copyright (c) 1999-2005, 2009-2010
+ * Copyright (c) 1999-2005, 2009-2013
* Todd C. Miller <Todd.Miller@courtesan.com>
*
* Permission to use, copy, modify, and distribute this software for any
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#ifndef _LOGGING_H
-#define _LOGGING_H
+#ifndef _SUDOERS_LOGGING_H
+#define _SUDOERS_LOGGING_H
#include <syslog.h>
#ifdef __STDC__
#define SLOG_FILE 0x02
#define SLOG_BOTH 0x03
-/* Flags for log_error() */
+/*
+ * Values for sudoers_setlocale()
+ */
+#define SUDOERS_LOCALE_USER 0
+#define SUDOERS_LOCALE_SUDOERS 1
+
+/* Flags for log_warning()/log_fatal() */
#define MSG_ONLY 0x01
#define USE_ERRNO 0x02
#define NO_MAIL 0x04
-#define NO_EXIT 0x08
-#define NO_STDERR 0x10
+#define NO_STDERR 0x08
+#define NO_LOG 0x10
/*
* Maximum number of characters to log per entry. The syslogger
*/
#define LOG_INDENT " "
-void audit_success(char *[]);
-void audit_failure(char *[], char const * const, ...);
-void log_allowed(int);
-void log_denial(int, int);
-void log_error(int flags, const char *fmt, ...) __printflike(2, 3);
-void reapchild(int);
+bool sudoers_setlocale(int newlocale, int *prevlocale);
+int sudoers_getlocale(void);
+void audit_success(char *exec_args[]);
+void audit_failure(char *exec_args[], char const *const fmt, ...);
+void log_allowed(int status);
+void log_auth_failure(int status, int tries);
+void log_denial(int status, bool inform_user);
+void log_failure(int status, int flags);
+void log_warning(int flags, const char *fmt, ...) __printflike(2, 3);
+void log_fatal(int flags, const char *fmt, ...) __printflike(2, 3) __attribute__((__noreturn__));
+void sudoers_initlocale(const char *ulocale, const char *slocale);
void writeln_wrap(FILE *fp, char *line, size_t len, size_t maxlen);
-#endif /* _LOGGING_H */
+#endif /* _SUDOERS_LOGGING_H */