Mercurial > hg > toybox
annotate toys/pending/klogd.c @ 974:5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
This also has a fix for boundary condition crash.
author | Ashwini Sharma <ak.ashwini@gmail.com> |
---|---|
date | Mon, 29 Jul 2013 00:42:30 -0500 |
parents | 144d5ba7d410 |
children | 00c7b6f4104a |
rev | line source |
---|---|
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1 /* klogd.c - Klogd, The kernel log Dameon. |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2 * |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
3 * Copyright 2013 Sandeep Sharma <sandeep.jack2756@gmail.com> |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4 * |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
5 * No standard |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
6 |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
7 USE_KLOGD(NEWTOY(klogd, "c#<1>8n", TOYFLAG_SBIN)) |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
8 |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
9 config KLOGD |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
10 bool "klogd" |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
11 default n |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
12 help |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
13 usage: klogd [-n] [-c N] |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
14 |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
15 -c N Print to console messages more urgent than prio N (1-8)" |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
16 -n Run in foreground. |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
17 |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
18 config KLOGD_SOURCE_RING_BUFFER |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
19 bool "enable kernel ring buffer as log source." |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
20 default n |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
21 depends on KLOGD |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
22 */ |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
23 |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
24 #define FOR_klogd |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
25 #include "toys.h" |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
26 #include <signal.h> |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
27 GLOBALS( |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
28 long level; |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
29 int fd; |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
30 ) |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
31 |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
32 #if CFG_KLOGD_SOURCE_RING_BUFFER |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
33 #include <sys/klog.h> |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
34 static void open_klogd(void) |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
35 { |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
36 syslog(LOG_NOTICE, "KLOGD: started with Kernel ring buffer as log source\n"); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
37 klogctl(1, NULL, 0); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
38 } |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
39 |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
40 static int read_klogd(char *bufptr, int len) |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
41 { |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
42 return klogctl(2, bufptr, len); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
43 } |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
44 |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
45 static void set_log_level(int level) |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
46 { |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
47 klogctl(8, NULL, level); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
48 } |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
49 |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
50 static void close_klogd(void) |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
51 { |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
52 klogctl(7, NULL, 0); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
53 klogctl(0, NULL, 0); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
54 } |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
55 #else |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
56 static void open_klogd(void) |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
57 { |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
58 TT.fd = xopen("/proc/kmsg", O_RDONLY); //_PATH_KLOG in paths.h |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
59 syslog(LOG_NOTICE, "KLOGD: started with /proc/kmsg as log source\n"); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
60 } |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
61 |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
62 static int read_klogd(char *bufptr, int len) |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
63 { |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
64 return xread(TT.fd, bufptr, len); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
65 } |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
66 |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
67 static void set_log_level(int level) |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
68 { |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
69 FILE *fptr = xfopen("/proc/sys/kernel/printk", "w"); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
70 fprintf(fptr, "%u\n", level); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
71 fclose(fptr); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
72 fptr = NULL; |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
73 } |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
74 |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
75 static void close_klogd(void) |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
76 { |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
77 set_log_level(7); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
78 xclose(TT.fd); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
79 } |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
80 #endif |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
81 |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
82 static void handle_signal(int sig) |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
83 { |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
84 close_klogd(); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
85 syslog(LOG_NOTICE,"KLOGD: Daemon exiting......"); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
86 exit(1); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
87 } |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
88 |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
89 static int daemonize(void) |
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
90 { |
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
91 pid_t pid; |
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
92 int fd = open("/dev/null", O_RDWR); |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
93 if (fd < 0) fd = open("/", O_RDONLY, 0666); |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
94 if((pid = fork()) < 0) { |
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
95 perror_msg("DAEMON: fail to fork"); |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
96 return -1; |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
97 } |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
98 if (pid) exit(EXIT_SUCCESS); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
99 |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
100 setsid(); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
101 dup2(fd, 0); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
102 dup2(fd, 1); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
103 dup2(fd, 2); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
104 if (fd > 2) close(fd); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
105 return 0; |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
106 } |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
107 |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
108 /* |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
109 * Read kernel ring buffer in local buff and keep track of |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
110 * "used" amount to track next read to start. |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
111 */ |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
112 void klogd_main(void) |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
113 { |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
114 int prio, size, used = 0; |
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
115 char *start, *line_start, msg_buffer[16348]; //LOG_LINE_LENGTH - Ring buffer size |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
116 |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
117 sigatexit(handle_signal); |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
118 if (toys.optflags & FLAG_c) set_log_level(TT.level); //set log level |
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
119 if (!(toys.optflags & FLAG_n)) daemonize(); //Make it daemon |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
120 open_klogd(); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
121 openlog("Kernel", 0, LOG_KERN); //open connection to system logger.. |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
122 |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
123 while(1) { |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
124 start = msg_buffer + used; //start updated for re-read. |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
125 size = read_klogd(start, sizeof(msg_buffer) - used - 1); |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
126 if (size < 0) perror_exit("error reading file:"); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
127 start[size] = '\0'; //Ensure last line to be NUL terminated. |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
128 if (used) start = msg_buffer; |
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
129 while(start) { |
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
130 if ((line_start = strsep(&start, "\n")) != NULL && start != NULL) used = 0; |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
131 else { //Incomplete line, copy it to start of buff. |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
132 used = strlen(line_start); |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
133 strcpy(msg_buffer, line_start); |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
134 if (used < (sizeof(msg_buffer) - 1)) break; |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
135 used = 0; //we have buffer full, log it as it is. |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
136 } |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
137 prio = LOG_INFO; //we dont know priority, mark it INFO |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
138 if (*line_start == '<') { //we have new line to syslog |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
139 line_start++; |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
140 if (line_start) prio = (int)strtoul(line_start, &line_start, 10); |
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
141 if (*line_start == '>') line_start++; |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
142 } |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
143 if (*line_start) syslog(prio, "%s", line_start); |
950
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
144 } |
a4a6bcf32657
klogd, submitted by Ashwini Sharma.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
145 } |
974
5a50be9d00a7
The attached KLOGD patch is an improved version of the one you have in hg.
Ashwini Sharma <ak.ashwini@gmail.com>
parents:
955
diff
changeset
|
146 } |