svlogd: fix pattern matching when using timestamps
authorDenys Vlasenko <vda.linux@googlemail.com>
Thu, 1 Nov 2018 13:53:04 +0000 (14:53 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 1 Nov 2018 13:53:04 +0000 (14:53 +0100)
function                                             old     new   delta
svlogd_main                                         1488    1496      +8

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
runit/svlogd.c

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