blob: e2700605549f97d48749a15801446c30fc0be4ae [file] [log] [blame]
Dmitry V. Levinb21e2fb2014-12-03 21:01:35 +00001#include "defs.h"
2
3enum {
4 SYSLOG_ACTION_CLOSE = 0,
5 SYSLOG_ACTION_OPEN,
6 SYSLOG_ACTION_READ,
7 SYSLOG_ACTION_READ_ALL,
8 SYSLOG_ACTION_READ_CLEAR,
9 SYSLOG_ACTION_CLEAR,
10 SYSLOG_ACTION_CONSOLE_OFF,
11 SYSLOG_ACTION_CONSOLE_ON,
12 SYSLOG_ACTION_CONSOLE_LEVEL,
13 SYSLOG_ACTION_SIZE_UNREAD,
14 SYSLOG_ACTION_SIZE_BUFFER
15};
16
17#include "xlat/syslog_action_type.h"
18
Dmitry V. Levina0bd3742015-04-07 01:36:50 +000019SYS_FUNC(syslog)
Dmitry V. Levinb21e2fb2014-12-03 21:01:35 +000020{
21 int type = tcp->u_arg[0];
22
23 if (entering(tcp)) {
24 /* type */
25 printxval(syslog_action_type, type, "SYSLOG_ACTION_???");
26 tprints(", ");
27 }
28
29 switch (type) {
30 case SYSLOG_ACTION_READ:
31 case SYSLOG_ACTION_READ_ALL:
32 case SYSLOG_ACTION_READ_CLEAR:
33 if (entering(tcp))
34 return 0;
35 break;
36 default:
Dmitry V. Levin279df2c2015-07-16 22:03:03 +000037 printaddr(tcp->u_arg[1]);
38 tprintf(", %lu", tcp->u_arg[2]);
39 return RVAL_DECODED;
Dmitry V. Levinb21e2fb2014-12-03 21:01:35 +000040 }
41
42 /* bufp */
43 if (syserror(tcp))
Dmitry V. Levinaa06f462015-07-16 21:59:53 +000044 printaddr(tcp->u_arg[1]);
Dmitry V. Levinb21e2fb2014-12-03 21:01:35 +000045 else
46 printstr(tcp, tcp->u_arg[1], tcp->u_rval);
47 /* len */
48 tprintf(", %d", (int) tcp->u_arg[2]);
49
50 return 0;
51}