From 68dadecc723c6fb8f8ab922c4274c9b2e03b25f6 Mon Sep 17 00:00:00 2001 From: pabelanger Date: Wed, 9 Jun 2010 17:34:38 +0000 Subject: Merged revisions 269346 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r269346 | pabelanger | 2010-06-09 13:32:52 -0400 (Wed, 09 Jun 2010) | 19 lines Merged revisions 269334 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r269334 | pabelanger | 2010-06-09 13:24:53 -0400 (Wed, 09 Jun 2010) | 12 lines Fix Debian init script to not use -c. When using the init script as-is currently, it could cause issues on Debian such as high CPU usage. This fix has worked for several people so I'm implementing the change. We now handle color displays properly. (closes issue #16784) Reported by: pabelanger Patches: 20100530__issue16784__2.diff.txt uploaded by tilghman (license 14) Tested by: pabelanger, tilghman ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@269347 f38db490-d61c-443f-a65b-d21fe96a405b --- contrib/init.d/rc.debian.asterisk | 13 +++++-------- main/term.c | 22 ++++++++++++++++------ 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/contrib/init.d/rc.debian.asterisk b/contrib/init.d/rc.debian.asterisk index f88f60e0c..c8e13ef41 100755 --- a/contrib/init.d/rc.debian.asterisk +++ b/contrib/init.d/rc.debian.asterisk @@ -53,7 +53,7 @@ if ! [ -d $ASTETCDIR ] ; then exit 0 fi -# Use the LSB standar functions for services management +# Use the LSB standard functions for services management . /lib/lsb/init-functions case "$1" in @@ -70,7 +70,6 @@ case "$1" in if [ ! -d $ASTVARRUNDIR ]; then mkdir -p $ASTVARRUNDIR fi - if [ $AST_USER ] ; then ASTARGS="-U $AST_USER" chown $AST_USER $ASTVARRUNDIR @@ -79,13 +78,11 @@ case "$1" in ASTARGS="$ASTARGS -G $AST_GROUP" chgrp $AST_GROUP $ASTVARRUNDIR fi - # "start-stop-daemon --oknodo" returns 0 even if Asterisk was already running (as LSB expects): - if test "x$COLOR" = "xyes" ; then - export TERM=linux - start-stop-daemon --start --oknodo --background --exec $DAEMON -- $ASTARGS -c - else - start-stop-daemon --start --oknodo --exec $DAEMON -- $ASTARGS + if test "x$COLOR" = "xno" ; then + ASTARGS="$ASTARGS -n" fi + # "start-stop-daemon --oknodo" returns 0 even if Asterisk was already running (as LSB expects): + start-stop-daemon --start --oknodo --exec $DAEMON -- $ASTARGS log_end_msg $? ;; stop) diff --git a/main/term.c b/main/term.c index 7f38ee5ce..b52fa1f26 100644 --- a/main/term.c +++ b/main/term.c @@ -1,7 +1,7 @@ /* * Asterisk -- An open source telephony toolkit. * - * Copyright (C) 1999 - 2005, Digium, Inc. + * Copyright (C) 1999 - 2010, Digium, Inc. * * Mark Spencer * @@ -18,9 +18,9 @@ /*! \file * - * \brief Terminal Routines + * \brief Terminal Routines * - * \author Mark Spencer + * \author Mark Spencer */ #include "asterisk.h" @@ -87,12 +87,21 @@ int ast_term_init(void) char buffer[512] = ""; int termfd = -1, parseokay = 0, i; - if (!term) + if (ast_opt_no_color) { return 0; - if (!ast_opt_console || ast_opt_no_color || !ast_opt_no_fork) + } + + if (!ast_opt_console) { + /* If any remote console is not compatible, we'll strip the color codes at that point */ + vt100compat = 1; + goto end; + } + + if (!term) { return 0; + } - for (i=0 ;; i++) { + for (i = 0;; i++) { if (termpath[i] == NULL) { break; } @@ -146,6 +155,7 @@ int ast_term_init(void) } } +end: if (vt100compat) { /* Make commands show up in nice colors */ if (ast_opt_light_background) { -- cgit v1.2.3