summaryrefslogtreecommitdiffstats
path: root/sys-utils/dmesg.c
diff options
context:
space:
mode:
authorKarel Zak2011-07-01 14:26:19 +0200
committerKarel Zak2011-07-01 14:26:19 +0200
commit48c5c662127ec673ccaa444e773aa34923ee1027 (patch)
tree06474d8d66fa69c94f4f6d4d7f8032c31356f145 /sys-utils/dmesg.c
parentdmesg: refactoring - cleanup read buffer code (diff)
downloadkernel-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.c35
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;
}