summaryrefslogtreecommitdiffstats
path: root/sbin
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2011-04-18 20:28:07 +0000
committerru <ru@FreeBSD.org>2011-04-18 20:28:07 +0000
commit54ee91ad9a5e7308638bf0e173f9b7fac62869a7 (patch)
tree9c975d5c54e5acc689e1981d43eb4b0d2c591572 /sbin
parent53a0fd8ac354d0c7779815e2ef3aeeaec9ceee0f (diff)
downloadFreeBSD-src-54ee91ad9a5e7308638bf0e173f9b7fac62869a7.zip
FreeBSD-src-54ee91ad9a5e7308638bf0e173f9b7fac62869a7.tar.gz
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
Diffstat (limited to 'sbin')
-rw-r--r--sbin/conscontrol/conscontrol.86
-rw-r--r--sbin/conscontrol/conscontrol.c30
2 files changed, 12 insertions, 24 deletions
diff --git a/sbin/conscontrol/conscontrol.8 b/sbin/conscontrol/conscontrol.8
index 726041e..3f34197 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 d8e5bc5..3d49709 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();
}
OpenPOWER on IntegriCloud