]> git.pld-linux.org Git - packages/logrotate.git/blob - logrotate-print-prog-name.patch
- rel 2; prefix output with config name: https://fedorahosted.org/logrotate/ticket/37
[packages/logrotate.git] / logrotate-print-prog-name.patch
1 Index: /trunk/logrotate.c\r
2 ===================================================================\r
3 --- /trunk/logrotate.c  (revision 454)\r
4 +++ /trunk/logrotate.c  (revision 455)\r
5 @@ -523,4 +523,7 @@\r
6      int i;\r
7      int status;\r
8 +       int compressPipe[2];\r
9 +       char buff[4092];\r
10 +       int error_printed = 0;\r
11  \r
12      message(MESS_DEBUG, "compressing log with: %s\n", log->compress_prog);\r
13 @@ -567,4 +570,12 @@\r
14      }\r
15  \r
16 +       if (pipe(compressPipe) < 0) {\r
17 +               message(MESS_ERROR, "error opening pipe for compress: %s",\r
18 +                               strerror(errno));\r
19 +               close(inFile);\r
20 +               close(outFile);\r
21 +               return 1;\r
22 +       }\r
23 +\r
24      if (!FORK_OR_VFORK()) {\r
25         dup2(inFile, 0);\r
26 @@ -572,4 +583,7 @@\r
27         dup2(outFile, 1);\r
28         close(outFile);\r
29 +       dup2(compressPipe[1], 2);\r
30 +       close(compressPipe[0]);\r
31 +       close(compressPipe[1]);\r
32  \r
33         if (switch_user_permanently(log) != 0) {\r
34 @@ -581,4 +595,15 @@\r
35      }\r
36  \r
37 +    close(compressPipe[1]);\r
38 +       while ((i = read(compressPipe[0], buff, sizeof(buff) - 1)) > 0) {\r
39 +               if (!error_printed) {\r
40 +                       error_printed = 1;\r
41 +                       message(MESS_ERROR, "Compressing program wrote following message "\r
42 +                                       "to stderr when compressing log %s:\n", name);\r
43 +               }\r
44 +               buff[i] = '\0';\r
45 +               fprintf(stderr, "%s", buff);\r
46 +       }\r
47 +       close(compressPipe[0]);\r
48      wait(&status);\r
49  \r
50 \r
This page took 0.098363 seconds and 3 git commands to generate.