diff options
author | ru <ru@FreeBSD.org> | 2011-04-18 20:28:07 +0000 |
---|---|---|
committer | ru <ru@FreeBSD.org> | 2011-04-18 20:28:07 +0000 |
commit | 54ee91ad9a5e7308638bf0e173f9b7fac62869a7 (patch) | |
tree | 9c975d5c54e5acc689e1981d43eb4b0d2c591572 /sbin/conscontrol/conscontrol.c | |
parent | 53a0fd8ac354d0c7779815e2ef3aeeaec9ceee0f (diff) | |
download | FreeBSD-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/conscontrol/conscontrol.c')
-rw-r--r-- | sbin/conscontrol/conscontrol.c | 30 |
1 files changed, 9 insertions, 21 deletions
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(); } |