/* * callback_log.c * * Callback hook to log users's commands */ #include #include #include #include #include #include "clish/shell.h" #define SYSLOG_IDENT "klish" /*--------------------------------------------------------- */ CLISH_HOOK_LOG(clish_hook_log) { clish_shell_t *this = clish_context__get_shell(clish_context); struct passwd *user = NULL; char *uname = "unknown"; /* Initialization */ if (!line) { openlog(SYSLOG_IDENT, LOG_PID, clish_shell__get_facility(this)); 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; }