diff options
author | Michael Meckelein <mmeckelein@hq.adiscon.com> | 2007-08-31 12:47:35 +0000 |
---|---|---|
committer | Michael Meckelein <mmeckelein@hq.adiscon.com> | 2007-08-31 12:47:35 +0000 |
commit | 262111689f19e362100236a37bcd3c7eed6fd769 (patch) | |
tree | 01f0b34b500c858c0c45531a622bbd6368bf565e /syslogd.c | |
parent | a24b9f9127f48c7ff7511288ac93f613198892a6 (diff) | |
download | rsyslog-262111689f19e362100236a37bcd3c7eed6fd769.tar.gz rsyslog-262111689f19e362100236a37bcd3c7eed6fd769.tar.bz2 rsyslog-262111689f19e362100236a37bcd3c7eed6fd769.zip |
patches and docu update for 1.19.3v1-19-3
Diffstat (limited to 'syslogd.c')
-rw-r--r-- | syslogd.c | 16 |
1 files changed, 14 insertions, 2 deletions
@@ -2302,8 +2302,20 @@ int shouldProcessThisMessage(selector_t *f, msg_t *pMsg) } if(f->pCSProgNameComp != NULL) { - if(rsCStrSzStrCmp(f->pCSProgNameComp, (uchar*) getProgramName(pMsg), getProgramNameLen(pMsg))) { - /* not equal, so we are already done... */ + int bInv = 0, bEqv = 0, offset = 0; + if(*(rsCStrGetSzStr(f->pCSProgNameComp)) == '-') { + if(*(rsCStrGetSzStr(f->pCSProgNameComp) + 1) == '-') + offset = 1; + else { + bInv = 1; + offset = 1; + } + } + if(!rsCStrOffsetSzStrCmp(f->pCSProgNameComp, offset, (uchar*) getProgramName(pMsg), getProgramNameLen(pMsg))) + bEqv = 1; + + if((!bEqv && !bInv) || (bEqv && bInv)) { + /* not equal or inverted selection, so we are already done... */ dbgprintf("programname filter '%s' does not match '%s'\n", rsCStrGetSzStr(f->pCSProgNameComp), getProgramName(pMsg)); return 0; |