diff options
-rw-r--r-- | omfile.c | 1 | ||||
-rw-r--r-- | omfwd.c | 1 | ||||
-rw-r--r-- | ommysql.c | 1 | ||||
-rw-r--r-- | omshell.c | 1 | ||||
-rw-r--r-- | omusrmsg.c | 2 | ||||
-rw-r--r-- | syslogd-types.h | 2 | ||||
-rw-r--r-- | syslogd.c | 12 |
7 files changed, 10 insertions, 10 deletions
@@ -69,7 +69,6 @@ static void cflineParseOutchannel(selector_t *f, uchar* p) * extend it... */ f->f_type = F_FILE; - f->doAction = doActionFile; ++p; /* skip '$' */ i = 0; @@ -395,7 +395,6 @@ static rsRetVal parseSelectorAct(uchar **pp, selector_t *f) hints.ai_flags = AI_NUMERICSERV; hints.ai_family = family; hints.ai_socktype = f->f_un.f_forw.protocol == FORW_UDP ? SOCK_DGRAM : SOCK_STREAM; - f->doAction = doActionFwd; if( (error = getaddrinfo(f->f_un.f_forw.f_hname, getFwdSyslogPt(f), &hints, &res)) != 0) { f->f_type = F_FORW_UNKN; f->f_prevcount = INET_RETRY_MAX; @@ -305,7 +305,6 @@ static rsRetVal parseSelectorAct(uchar **pp, selector_t *f) "database functionality - ignored"); #else /* WITH_DB defined! */ f->f_type = F_MYSQL; - f->doAction = doActionMySQL; p++; /* Now we read the MySQL connection properties @@ -84,7 +84,6 @@ static rsRetVal parseSelectorAct(uchar **pp, selector_t *f) cflineParseFileName(f, p); if (f->f_type == F_FILE) { f->f_type = F_SHELL; - f->doAction = doActionShell; } break; default: @@ -236,7 +236,6 @@ static rsRetVal parseSelectorAct(uchar **pp, selector_t *f) if(*p == '*') { /* wall */ dprintf ("write-all"); f->f_type = F_WALL; - f->doAction = doAction; if(*(p+1) == ';') { /* we have a template specifier! */ p += 2; /* eat "*;" */ @@ -261,7 +260,6 @@ static rsRetVal parseSelectorAct(uchar **pp, selector_t *f) */ dprintf ("users: %s\n", p); /* ASP */ f->f_type = F_USERS; - f->doAction = doAction; for (i = 0; i < MAXUNAMES && *p && *p != ';'; i++) { for (q = p; *q && *q != ',' && *q != ';'; ) q++; diff --git a/syslogd-types.h b/syslogd-types.h index d4e9e81d..ee29c68a 100644 --- a/syslogd-types.h +++ b/syslogd-types.h @@ -135,7 +135,6 @@ struct syslogTime { */ struct filed { struct filed *f_next; /* next in linked list */ - int (*doAction)(struct filed *); /* method to call to perform an action */ short f_type; /* entry type, see below */ short f_file; /* file descriptor */ time_t f_time; /* time this was last written */ @@ -147,6 +146,7 @@ struct filed { EHostnameCmpMode eHostnameCmpMode; rsCStrObj *pCSHostnameComp;/* hostname to check */ rsCStrObj *pCSProgNameComp; /* tag to check or NULL, if not to be checked */ + struct moduleInfo *pMod; /* pointer to output module handling this selector */ union { u_char f_pmask[LOG_NFACILITIES+1]; /* priority mask */ struct { @@ -2325,6 +2325,10 @@ static void processMsg(msg_t *pMsg) assert(pMsg != NULL); +#if 0 /* TODO: I temporarily disable the emergency logging system. We must re-think + * how this is done, as we now have modules. + * rgerhards, 2007-07-24 + */ /* log the message to the particular outputs */ if (!Initialized) { /* If we reach this point, the daemon initialization FAILED. That is, @@ -2369,6 +2373,7 @@ static void processMsg(msg_t *pMsg) } return; /* we are done with emergency loging */ } +#endif for (f = Files; f != NULL ; f = f->f_next) { /* first, we need to check if this is a disabled (F_UNUSED) @@ -3310,7 +3315,9 @@ void fprintlog(register selector_t *f) f->f_time = now; /* we need this for message repeation processing TODO: why must it be global now? */ if(f->f_type != F_UNUSED) { - f->doAction(f); /* call configured action */ + if(f->pMod->mod.om.doAction != NULL) /* safety check */ + f->pMod->mod.om.doAction(f); /* call configured action */ + // TODO: this causes problems for the emergency logging system! } if (f->f_type != F_FORW_UNKN) @@ -4624,11 +4631,9 @@ void cflineParseFileName(selector_t *f, uchar* p) if(*p == '|') { f->f_type = F_PIPE; - f->doAction = doActionFile; ++p; } else { f->f_type = F_FILE; - f->doAction = doActionFile; } pName = f->f_un.f_file.f_fname; @@ -5096,6 +5101,7 @@ static rsRetVal cfline(char *line, register selector_t *f) if(iRet == RS_RET_CONFLINE_PROCESSED) { dprintf("Module %s processed this config line.\n", modGetName(pMod)); + f->pMod = pMod; break; } else if(iRet != RS_RET_CONFLINE_UNPROCESSED) { |