[BusyBox-cvs] svn commit: trunk/busybox: console-tools include

pgf at busybox.net pgf at busybox.net
Mon Aug 1 18:12:31 UTC 2005


Author: pgf
Date: 2005-08-01 12:12:30 -0600 (Mon, 01 Aug 2005)
New Revision: 11008

Log:
applying patch for bug 72:
    0000072: Add applet to redirect console output via ioctl(..., TIOCCONS)  
applet name changed to setconsole, since suse has a very similar
utility.  better to treat differences as bugs than invent a new command.


Added:
   trunk/busybox/console-tools/setconsole.c

Modified:
   trunk/busybox/AUTHORS
   trunk/busybox/console-tools/Config.in
   trunk/busybox/console-tools/Makefile.in
   trunk/busybox/include/applets.h
   trunk/busybox/include/usage.h


Changeset:
Modified: trunk/busybox/AUTHORS
===================================================================
--- trunk/busybox/AUTHORS	2005-08-01 16:43:13 UTC (rev 11007)
+++ trunk/busybox/AUTHORS	2005-08-01 18:12:30 UTC (rev 11008)
@@ -26,6 +26,9 @@
 Jeff Angielski <jeff at theptrgroup.com>
     ftpput, ftpget
 
+Enrik Berkhan <Enrik.Berkhan at inka.de>
+    setconsole
+
 Edward Betts <edward at debian.org>
     expr, hostid, logname, whoami
 

Modified: trunk/busybox/console-tools/Config.in
===================================================================
--- trunk/busybox/console-tools/Config.in	2005-08-01 16:43:13 UTC (rev 11007)
+++ trunk/busybox/console-tools/Config.in	2005-08-01 18:12:30 UTC (rev 11008)
@@ -31,6 +31,13 @@
 	  This program dumps the kernel's keyboard translation table to
 	  stdout, in binary format. You can then use loadkmap to load it.
 
+config CONFIG_SETCONSOLE
+	bool "setconsole"
+	default n
+	help
+	  This program redirects the system console to another device,
+	  like the current tty while logged in via telnet.
+
 config CONFIG_LOADFONT
 	bool "loadfont"
 	default n

Modified: trunk/busybox/console-tools/Makefile.in
===================================================================
--- trunk/busybox/console-tools/Makefile.in	2005-08-01 16:43:13 UTC (rev 11007)
+++ trunk/busybox/console-tools/Makefile.in	2005-08-01 18:12:30 UTC (rev 11008)
@@ -28,6 +28,7 @@
 CONSOLETOOLS_DIR-$(CONFIG_CLEAR)	+= clear.o
 CONSOLETOOLS_DIR-$(CONFIG_DEALLOCVT)	+= deallocvt.o
 CONSOLETOOLS_DIR-$(CONFIG_DUMPKMAP)	+= dumpkmap.o
+CONSOLETOOLS_DIR-$(CONFIG_SETCONSOLE)	+= setconsole.o
 CONSOLETOOLS_DIR-$(CONFIG_LOADFONT)	+= loadfont.o
 CONSOLETOOLS_DIR-$(CONFIG_LOADKMAP)	+= loadkmap.o
 CONSOLETOOLS_DIR-$(CONFIG_OPENVT)	+= openvt.o

Added: trunk/busybox/console-tools/setconsole.c
===================================================================
--- trunk/busybox/console-tools/setconsole.c	2005-08-01 16:43:13 UTC (rev 11007)
+++ trunk/busybox/console-tools/setconsole.c	2005-08-01 18:12:30 UTC (rev 11008)
@@ -0,0 +1,74 @@
+/* vi: set sw=4 ts=4: */
+/*
+ *  setconsole.c - redirect system console output
+ *
+ *  Copyright (C) 2004,2005  Enrik Berkhan <Enrik.Berkhan at inka.de>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <sys/ioctl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <getopt.h>
+
+#include "busybox.h"
+
+static const struct option setconsole_long_options[] = {
+	{ "reset", 0, NULL, 'r' },
+	{ 0, 0, 0, 0 }
+};
+
+#define OPT_SETCONS_RESET 1
+
+int setconsole_main(int argc, char **argv)
+{
+	int con;
+	unsigned long flags;
+	const char *device = "/dev/tty";
+
+	bb_applet_long_options = setconsole_long_options;
+	flags = bb_getopt_ulflags(argc, argv, "r");
+
+	if (argc - optind > 1)
+		bb_show_usage();
+
+	if (argc - optind == 1) {
+		if (flags & OPT_SETCONS_RESET)
+			bb_show_usage();
+		device = argv[optind];
+	} else {
+		if (flags & OPT_SETCONS_RESET)
+			device = "/dev/console";
+	}
+
+	if (-1 == (con = open(device, O_RDONLY))) {
+		bb_perror_msg_and_die("open %s", device);
+	}
+	if (-1 == ioctl(con, TIOCCONS)) {
+		bb_perror_msg_and_die("ioctl TIOCCONS");
+	}
+	return EXIT_SUCCESS;
+}
+
+/*
+Local Variables:
+c-file-style: "linux"
+c-basic-offset: 4
+tab-width: 4
+End:
+*/

Modified: trunk/busybox/include/applets.h
===================================================================
--- trunk/busybox/include/applets.h	2005-08-01 16:43:13 UTC (rev 11007)
+++ trunk/busybox/include/applets.h	2005-08-01 18:12:30 UTC (rev 11008)
@@ -552,6 +552,9 @@
 #ifdef CONFIG_SEQ
 	APPLET(seq, seq_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER)
 #endif
+#ifdef CONFIG_SETCONSOLE
+	APPLET(setconsole, setconsole_main, _BB_DIR_SBIN, _BB_SUID_NEVER)
+#endif
 #ifdef CONFIG_SETKEYCODES
 	APPLET(setkeycodes, setkeycodes_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER)
 #endif

Modified: trunk/busybox/include/usage.h
===================================================================
--- trunk/busybox/include/usage.h	2005-08-01 16:43:13 UTC (rev 11007)
+++ trunk/busybox/include/usage.h	2005-08-01 18:12:30 UTC (rev 11008)
@@ -2351,6 +2351,13 @@
 	"\tFIRST\tLAST\n" \
 	"\tFIRST\tINCREMENT\tLAST"
 
+#define setconsole_trivial_usage \
+	"[-r|--reset] [DEVICE]"
+#define setconsole_full_usage \
+	"Redirects system console output to DEVICE (default: /dev/tty).\n\n" \
+	"Options:\n" \
+	"\t-r\tReset output to /dev/console."
+
 #define setkeycodes_trivial_usage \
 	"SCANCODE KEYCODE ..."
 #define setkeycodes_full_usage \




More information about the busybox-cvs mailing list