5 static void *syslog_parse __P((char **));
6 static void syslog_destroy __P((void *));
7 static int syslog_send __P((void *, ipmon_msg_t *));
8 static void syslog_print __P((void *));
10 typedef struct syslog_opts_s {
16 ipmon_saver_t syslogsaver = {
28 syslog_parse(char **strings)
34 ctx = calloc(1, sizeof(*ctx));
40 if (strings[0] != NULL && strings[0][0] != '\0') {
41 str = strdup(*strings);
42 if (str != NULL && *str != '\0') {
43 int fac = -1, pri = -1;
50 fac = fac_findname(str);
58 if (s != NULL && *s != '\0') {
59 pri = pri_findname(s);
75 ctx->facpri = fac | pri;
92 syslog_opts_t *sys = ctx;
94 if (sys->facpri == -1)
98 printf(".%s", pri_toname(sys->pri));
99 } else if (sys->pri == -1) {
100 printf("%s.", fac_toname(sys->fac));
102 printf("%s.%s", fac_toname(sys->facpri & LOG_FACMASK),
103 pri_toname(sys->facpri & LOG_PRIMASK));
117 syslog_send(ctx, msg)
121 syslog_opts_t *sys = ctx;
124 if (sys->facpri == -1) {
125 facpri = msg->imm_loglevel;
127 if (sys->pri == -1) {
128 facpri = sys->fac | (msg->imm_loglevel & LOG_PRIMASK);
129 } else if (sys->fac == -1) {
130 facpri = sys->pri | (msg->imm_loglevel & LOG_FACMASK);
132 facpri = sys->facpri;
135 syslog(facpri, "%s", msg->imm_msg);