]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[console] Exclude text-based UI output from logfile-based consoles
authorMichael Brown <mcb30@ipxe.org>
Mon, 26 Mar 2012 18:02:30 +0000 (19:02 +0100)
committerMichael Brown <mcb30@ipxe.org>
Mon, 26 Mar 2012 18:02:30 +0000 (19:02 +0100)
The output from text-based user interfaces such as the "config"
command is not generally meaningful for logfile-based consoles such as
syslog and vmconsole.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/arch/i386/interface/vmware/vmconsole.c
src/hci/mucurses/ansi_screen.c
src/include/ipxe/console.h
src/net/udp/syslog.c

index 3096e5b531685fbb151327eb9d8d44dec26fbb36..096b1af1a126f0a6868519358dc192577d20fb34 100644 (file)
@@ -37,7 +37,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
 /* Set default console usage if applicable */
 #if ! ( defined ( CONSOLE_VMWARE ) && CONSOLE_EXPLICIT ( CONSOLE_VMWARE ) )
 #undef CONSOLE_VMWARE
-#define CONSOLE_VMWARE CONSOLE_USAGE_ALL
+#define CONSOLE_VMWARE ( CONSOLE_USAGE_ALL & ~CONSOLE_USAGE_TUI )
 #endif
 
 /** VMware logfile console GuestRPC channel */
index cc342f7ca3040a712edd05300297734f43e488c6..d952e5f2aa931caf2c03118e31e21e727589b218 100644 (file)
@@ -12,6 +12,8 @@ static void ansiscr_putc(struct _curses_screen *scr, chtype c) __nonnull;
 unsigned short _COLS = 80;
 unsigned short _LINES = 24;
 
+static unsigned int saved_usage;
+
 static void ansiscr_reset ( struct _curses_screen *scr ) {
        /* Reset terminal attributes and clear screen */
        scr->attrs = 0;
@@ -20,6 +22,16 @@ static void ansiscr_reset ( struct _curses_screen *scr ) {
        printf ( "\033[0m" );
 }
 
+static void ansiscr_init ( struct _curses_screen *scr ) {
+       saved_usage = console_set_usage ( CONSOLE_USAGE_TUI );
+       ansiscr_reset ( scr );
+}
+
+static void ansiscr_exit ( struct _curses_screen *scr ) {
+       ansiscr_reset ( scr );
+       console_set_usage ( saved_usage );
+}
+
 static void ansiscr_movetoyx ( struct _curses_screen *scr,
                               unsigned int y, unsigned int x ) {
        if ( ( x != scr->curs_x ) || ( y != scr->curs_y ) ) {
@@ -65,8 +77,8 @@ static bool ansiscr_peek ( struct _curses_screen *scr __unused ) {
 }
 
 SCREEN _ansi_screen = {
-       .init           = ansiscr_reset,
-       .exit           = ansiscr_reset,
+       .init           = ansiscr_init,
+       .exit           = ansiscr_exit,
        .movetoyx       = ansiscr_movetoyx,
        .putc           = ansiscr_putc,
        .getc           = ansiscr_getc,
index f70dd714a8b3a6aa4f7a02f1e9d86cf75e8900ed..5ff93884d5e81ce02c27a919568e3b68c666f73a 100644 (file)
@@ -117,8 +117,12 @@ struct console_driver {
 /** Debug messages */
 #define CONSOLE_USAGE_DEBUG 0x0002
 
+/** Text-based user interface */
+#define CONSOLE_USAGE_TUI 0x0004
+
 /** All console usages */
-#define CONSOLE_USAGE_ALL ( CONSOLE_USAGE_STDOUT | CONSOLE_USAGE_DEBUG )
+#define CONSOLE_USAGE_ALL \
+       ( CONSOLE_USAGE_STDOUT | CONSOLE_USAGE_DEBUG | CONSOLE_USAGE_TUI )
 
 /** @} */
 
index 8788e1c45e3f571df23ea43a529b31002ab2bcbf..abf51359ec40d02f1de6124fba53119875b8db7e 100644 (file)
@@ -39,7 +39,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
 /* Set default console usage if applicable */
 #if ! ( defined ( CONSOLE_SYSLOG ) && CONSOLE_EXPLICIT ( CONSOLE_SYSLOG ) )
 #undef CONSOLE_SYSLOG
-#define CONSOLE_SYSLOG CONSOLE_USAGE_ALL
+#define CONSOLE_SYSLOG ( CONSOLE_USAGE_ALL & ~CONSOLE_USAGE_TUI )
 #endif
 
 /** The syslog server */