svlogd: fix pattern matching when using timestamps

function                                             old     new   delta
svlogd_main                                         1488    1496      +8

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2018-11-01 14:53:04 +01:00
parent 0575c9932d
commit 0df289f427

View File

@ -1010,7 +1010,7 @@ static void sig_hangup_handler(int sig_no UNUSED_PARAM)
reopenasap = 1; reopenasap = 1;
} }
static void logmatch(struct logdir *ld) static void logmatch(struct logdir *ld, char* lineptr, int lineptr_len)
{ {
char *s; char *s;
@ -1021,12 +1021,12 @@ static void logmatch(struct logdir *ld)
switch (s[0]) { switch (s[0]) {
case '+': case '+':
case '-': case '-':
if (pmatch(s+1, line, linelen)) if (pmatch(s+1, lineptr, lineptr_len))
ld->match = s[0]; ld->match = s[0];
break; break;
case 'e': case 'e':
case 'E': case 'E':
if (pmatch(s+1, line, linelen)) if (pmatch(s+1, lineptr, lineptr_len))
ld->matcherr = s[0]; ld->matcherr = s[0];
break; break;
} }
@ -1182,7 +1182,7 @@ int svlogd_main(int argc, char **argv)
if (ld->fddir == -1) if (ld->fddir == -1)
continue; continue;
if (ld->inst) if (ld->inst)
logmatch(ld); logmatch(ld, lineptr, linelen);
if (ld->matcherr == 'e') { if (ld->matcherr == 'e') {
/* runit-1.8.0 compat: if timestamping, do it on stderr too */ /* runit-1.8.0 compat: if timestamping, do it on stderr too */
////full_write(STDERR_FILENO, printptr, printlen); ////full_write(STDERR_FILENO, printptr, printlen);