Author: ru
Date: Mon Apr 18 20:28:07 2011
New Revision: 220801
URL: http://svn.freebsd.org/changeset/base/220801

Log:
  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

Modified:
  head/sbin/conscontrol/conscontrol.8
  head/sbin/conscontrol/conscontrol.c

Modified: head/sbin/conscontrol/conscontrol.8
==============================================================================
--- head/sbin/conscontrol/conscontrol.8 Mon Apr 18 20:07:08 2011        
(r220800)
+++ head/sbin/conscontrol/conscontrol.8 Mon Apr 18 20:28:07 2011        
(r220801)
@@ -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 ,

Modified: head/sbin/conscontrol/conscontrol.c
==============================================================================
--- head/sbin/conscontrol/conscontrol.c Mon Apr 18 20:07:08 2011        
(r220800)
+++ head/sbin/conscontrol/conscontrol.c Mon Apr 18 20:28:07 2011        
(r220801)
@@ -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();
        }
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to