Changed "conscontrol unset" to accept an existing virtual

console device as an argument.  Unsetting virtual console
using /dev/console seems to have never worked.

MFC after:	3 days
This commit is contained in:
Ruslan Ermilov 2011-04-18 20:28:07 +00:00
parent ca47294ddf
commit 576f40089b
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=220801
2 changed files with 12 additions and 24 deletions

View File

@ -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 ,

View File

@ -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();
}