summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Belanger <paul.belanger@polybeacon.com>2010-06-09 17:32:52 +0000
committerPaul Belanger <paul.belanger@polybeacon.com>2010-06-09 17:32:52 +0000
commit9aafd4c6b1d0fc0d18f5c064b3d062fc98833694 (patch)
tree9f1779c4f2a3fe00ebed0daa2b61c613167cd98f
parent717570899c60a69368001ec276f69bab9a6f45c1 (diff)
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: https://origsvn.digium.com/svn/asterisk/trunk@269346 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rwxr-xr-xcontrib/init.d/rc.debian.asterisk13
-rw-r--r--main/term.c22
2 files changed, 21 insertions, 14 deletions
diff --git a/contrib/init.d/rc.debian.asterisk b/contrib/init.d/rc.debian.asterisk
index e16d61c33..a59431d34 100755
--- a/contrib/init.d/rc.debian.asterisk
+++ b/contrib/init.d/rc.debian.asterisk
@@ -50,7 +50,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
# Allow configuration overrides in /etc/default/asterisk
@@ -76,7 +76,6 @@ case "$1" in
if [ ! -d $ASTVARRUNDIR ]; then
mkdir -p $ASTVARRUNDIR
fi
-
if [ $AST_USER ] ; then
ASTARGS="-U $AST_USER"
chown $AST_USER $ASTVARRUNDIR
@@ -108,13 +107,11 @@ case "$1" in
if [ "x$TEMPRECORDINGLOCATION" = "xyes" -o "x$TMPRECORDINGLOCATION" = "xyes" ]; then
ASTARGS="$ASTARGS -t"
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 5140e6323..fbe093f80 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 <markster@digium.com>
*
@@ -18,9 +18,9 @@
/*! \file
*
- * \brief Terminal Routines
+ * \brief Terminal Routines
*
- * \author Mark Spencer <markster@digium.com>
+ * \author Mark Spencer <markster@digium.com>
*/
#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) {