diff options
author | Karel Zak | 2011-07-01 14:26:19 +0200 |
---|---|---|
committer | Karel Zak | 2011-07-01 14:26:19 +0200 |
commit | 48c5c662127ec673ccaa444e773aa34923ee1027 (patch) | |
tree | 06474d8d66fa69c94f4f6d4d7f8032c31356f145 /sys-utils/dmesg.c | |
parent | dmesg: refactoring - cleanup read buffer code (diff) | |
download | kernel-qcow2-util-linux-48c5c662127ec673ccaa444e773aa34923ee1027.tar.gz kernel-qcow2-util-linux-48c5c662127ec673ccaa444e773aa34923ee1027.tar.xz kernel-qcow2-util-linux-48c5c662127ec673ccaa444e773aa34923ee1027.zip |
dmesg: refactoring - cleanup main() code
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'sys-utils/dmesg.c')
-rw-r--r-- | sys-utils/dmesg.c | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/sys-utils/dmesg.c b/sys-utils/dmesg.c index a291857a6..ac8da0c53 100644 --- a/sys-utils/dmesg.c +++ b/sys-utils/dmesg.c @@ -131,7 +131,7 @@ int main(int argc, char *argv[]) int bufsize = 0; int n; int c; - int level = 0; + int console_level = 0; int cmd = SYSLOG_ACTION_READ_ALL; int flags = 0; @@ -156,7 +156,8 @@ int main(int argc, char *argv[]) break; case 'n': cmd = SYSLOG_ACTION_CONSOLE_LEVEL; - level = strtol_or_err(optarg, _("failed to parse level")); + console_level = strtol_or_err(optarg, + _("failed to parse level")); break; case 'r': flags |= DMESG_FL_RAW; @@ -184,24 +185,26 @@ int main(int argc, char *argv[]) if (argc > 1) usage(stderr); - if (cmd == SYSLOG_ACTION_CONSOLE_LEVEL) { - n = klogctl(cmd, NULL, level); - if (n < 0) - err(EXIT_FAILURE, _("klogctl failed")); - - return EXIT_SUCCESS; + switch (cmd) { + case SYSLOG_ACTION_READ_ALL: + case SYSLOG_ACTION_READ_CLEAR: + if (!bufsize) + bufsize = get_buffer_size(); + n = read_buffer(&buf, bufsize, cmd == SYSLOG_ACTION_READ_CLEAR); + if (n > 0) + print_buffer(buf, n, flags); + free(buf); + break; + case SYSLOG_ACTION_CONSOLE_LEVEL: + n = klogctl(cmd, NULL, console_level); + break; + default: + errx(EXIT_FAILURE, _("unsupported command")); + break; } - if (!bufsize) - bufsize = get_buffer_size(); - - n = read_buffer(&buf, bufsize, cmd == SYSLOG_ACTION_READ_CLEAR); if (n < 0) err(EXIT_FAILURE, _("klogctl failed")); - print_buffer(buf, n, flags); - - free(buf); - return EXIT_SUCCESS; } |