[asterisk-commits] russell: branch 1.4 r85533 - in /branches/1.4: include/asterisk/ main/
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Sat Oct 13 00:48:10 CDT 2007
Author: russell
Date: Sat Oct 13 00:48:10 2007
New Revision: 85533
URL: http://svn.digium.com/view/asterisk?view=rev&rev=85533
Log:
Fix an issue with console verbosity when running asterisk -rx to execute a command
and retrieve its output. The issue was that there was no way for the main Asterisk
process to know that the remote console was connecting in the -rx mode. The way that
James has fixed this is to have all remote consoles muted by default. Then, regular
remote consoles automatically execute a CLI command to unmute themselves when they
first start up.
(closes issue #10847)
Reported by: atis
Patches:
asterisk-consolemute.diff.txt uploaded by jamesgolovich (license 176)
Modified:
branches/1.4/include/asterisk/logger.h
branches/1.4/main/asterisk.c
branches/1.4/main/cli.c
Modified: branches/1.4/include/asterisk/logger.h
URL: http://svn.digium.com/view/asterisk/branches/1.4/include/asterisk/logger.h?view=diff&rev=85533&r1=85532&r2=85533
==============================================================================
--- branches/1.4/include/asterisk/logger.h (original)
+++ branches/1.4/include/asterisk/logger.h Sat Oct 13 00:48:10 2007
@@ -83,7 +83,7 @@
void ast_console_puts(const char *string);
void ast_console_puts_mutable(const char *string);
-void ast_console_toggle_mute(int fd);
+void ast_console_toggle_mute(int fd, int silent);
#define _A_ __FILE__, __LINE__, __PRETTY_FUNCTION__
Modified: branches/1.4/main/asterisk.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/main/asterisk.c?view=diff&rev=85533&r1=85532&r2=85533
==============================================================================
--- branches/1.4/main/asterisk.c (original)
+++ branches/1.4/main/asterisk.c Sat Oct 13 00:48:10 2007
@@ -832,16 +832,18 @@
/*!
* \brief mute or unmute a console from logging
*/
-void ast_console_toggle_mute(int fd) {
+void ast_console_toggle_mute(int fd, int silent) {
int x;
for (x = 0;x < AST_MAX_CONNECTS; x++) {
if (fd == consoles[x].fd) {
if (consoles[x].mute) {
consoles[x].mute = 0;
- ast_cli(fd, "Console is not muted anymore.\n");
+ if (!silent)
+ ast_cli(fd, "Console is not muted anymore.\n");
} else {
consoles[x].mute = 1;
- ast_cli(fd, "Console is muted.\n");
+ if (!silent)
+ ast_cli(fd, "Console is muted.\n");
}
return;
}
@@ -1000,7 +1002,7 @@
flags = fcntl(consoles[x].p[1], F_GETFL);
fcntl(consoles[x].p[1], F_SETFL, flags | O_NONBLOCK);
consoles[x].fd = s;
- consoles[x].mute = ast_opt_mute;
+ consoles[x].mute = 1; /* Default is muted, we will un-mute if necessary */
if (ast_pthread_create_background(&consoles[x].t, &attr, netconsole, &consoles[x])) {
ast_log(LOG_ERROR, "Unable to spawn thread to handle connection: %s\n", strerror(errno));
close(consoles[x].p[0]);
@@ -2256,13 +2258,15 @@
pid = atoi(cpid);
else
pid = -1;
- snprintf(tmp, sizeof(tmp), "core set verbose atleast %d", option_verbose);
- fdprint(ast_consock, tmp);
- snprintf(tmp, sizeof(tmp), "core set debug atleast %d", option_debug);
- fdprint(ast_consock, tmp);
- if (ast_opt_mute) {
- snprintf(tmp, sizeof(tmp), "log and verbose output currently muted ('logger unmute' to unmute)");
+ if (!data) {
+ snprintf(tmp, sizeof(tmp), "core set verbose atleast %d", option_verbose);
fdprint(ast_consock, tmp);
+ snprintf(tmp, sizeof(tmp), "core set debug atleast %d", option_debug);
+ fdprint(ast_consock, tmp);
+ if (!ast_opt_mute)
+ fdprint(ast_consock, "logger mute silent");
+ else
+ printf("log and verbose output currently muted ('logger mute' to unmute)\n");
}
ast_verbose("Connected to Asterisk %s currently running on %s (pid = %d)\n", version, hostname, pid);
remotehostname = hostname;
Modified: branches/1.4/main/cli.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/main/cli.c?view=diff&rev=85533&r1=85532&r2=85533
==============================================================================
--- branches/1.4/main/cli.c (original)
+++ branches/1.4/main/cli.c Sat Oct 13 00:48:10 2007
@@ -402,9 +402,12 @@
static int handle_logger_mute(int fd, int argc, char *argv[])
{
- if (argc != 2)
- return RESULT_SHOWUSAGE;
- ast_console_toggle_mute(fd);
+ if (argc < 2 || argc > 3)
+ return RESULT_SHOWUSAGE;
+ if (argc == 3 && !strcasecmp(argv[2], "silent"))
+ ast_console_toggle_mute(fd, 1);
+ else
+ ast_console_toggle_mute(fd, 0);
return RESULT_SUCCESS;
}
More information about the asterisk-commits
mailing list