/* * callback_log.c * * Callback hook to log users's commands */ #include #include #include #include #include #include "clish/shell.h" #define SYSLOG_IDENT "klish" #define SYSLOG_FACILITY LOG_LOCAL0 /*--------------------------------------------------------- */ CLISH_HOOK_LOG(clish_hook_log) { clish_context_t *context = (clish_context_t *)clish_context; clish_shell_t *this = context->shell; struct passwd *user = NULL; char *uname = "unknown"; /* Initialization */ if (!line) { openlog(SYSLOG_IDENT, LOG_PID, SYSLOG_FACILITY); return 0; } /* Log the given line */ if ((user = clish_shell__get_user(this))) uname = user->pw_name; syslog(LOG_INFO, "(%s) %s : %d", uname, line, retcode); return 0; }