From 9f3e7d2084d80e6b1efa46e044608e3b951b72b2 Mon Sep 17 00:00:00 2001 From: ru Date: Thu, 21 Apr 2011 09:34:44 +0000 Subject: [PATCH] MFC r220801: Changed "conscontrol unset" to accept an existing virtual console device as an argument. Unsetting virtual console using /dev/console seems to have never worked. git-svn-id: svn://svn.freebsd.org/base/stable/8@220919 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- sbin/conscontrol/conscontrol.8 | 6 +++--- sbin/conscontrol/conscontrol.c | 30 +++++++++--------------------- 2 files changed, 12 insertions(+), 24 deletions(-) diff --git a/sbin/conscontrol/conscontrol.8 b/sbin/conscontrol/conscontrol.8 index 726041e40..3f341972b 100644 --- a/sbin/conscontrol/conscontrol.8 +++ b/sbin/conscontrol/conscontrol.8 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 23, 2001 +.Dd April 14, 2011 .Dt CONSCONTROL 8 .Os .Sh NAME @@ -40,7 +40,7 @@ .Cm add | delete .Ar console .Nm -.Cm set Ar console | Cm unset +.Cm set | unset Ar console .Sh DESCRIPTION The .Nm @@ -91,7 +91,7 @@ the name of the directory may be omitted. Change the state of console muting. All console output is suppressed when console muting is .Cm on . -.It Cm set Ar console | Cm unset +.It Cm set | unset Ar console Set or unset the virtual console. When unset, output from the system, such as the kernel .Xr printf 9 , diff --git a/sbin/conscontrol/conscontrol.c b/sbin/conscontrol/conscontrol.c index d8e5bc52c..3d49709c3 100644 --- a/sbin/conscontrol/conscontrol.c +++ b/sbin/conscontrol/conscontrol.c @@ -50,7 +50,7 @@ usage(void) "usage: conscontrol [list]", " conscontrol mute on | off", " conscontrol add | delete console", - " conscontrol set console | unset"); + " conscontrol set | unset console"); exit(1); } @@ -153,28 +153,16 @@ consdel(char *devnam) } static void -consset(char *devnam) +consset(char *devnam, int flag) { - int ttyfd, flag = 1; + int ttyfd; ttyfd = open(devnam, O_RDONLY); if (ttyfd == -1) err(1, "opening %s", devnam); if (ioctl(ttyfd, TIOCCONS, &flag) == -1) - err(1, "could not set %s as virtual console", devnam); - close(ttyfd); -} - -static void -consunset(void) -{ - int ttyfd, flag = 0; - - ttyfd = open(DEVDIR "console", O_RDONLY); - if (ttyfd == -1) - err(1, "opening virtual console"); - if (ioctl(ttyfd, TIOCCONS, &flag) == -1) - err(1, "could not unset virtual console"); + err(1, "could not %s %s as virtual console", + flag ? "set" : "unset", devnam); close(ttyfd); } @@ -188,9 +176,7 @@ main(int argc, char **argv) argv += optind; if (argc > 0 && strcmp(argv[0], "list") != 0) { - if (argc == 1 && strcmp(argv[0], "unset") == 0) - consunset(); - else if (argc != 2) + if (argc != 2) usage(); else if (strcmp(argv[0], "mute") == 0) consmute(argv[1]); @@ -199,7 +185,9 @@ main(int argc, char **argv) else if (strcmp(argv[0], "delete") == 0) consdel(argv[1]); else if (strcmp(argv[0], "set") == 0) - consset(argv[1]); + consset(argv[1], 1); + else if (strcmp(argv[0], "unset") == 0) + consset(argv[1], 0); else usage(); } -- 2.45.0