aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_misdn.c
diff options
context:
space:
mode:
authorrmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b>2009-04-10 14:50:42 +0000
committerrmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b>2009-04-10 14:50:42 +0000
commit7b2b6e7a58af289f56a880dc39b60c82569810fd (patch)
treea79ae7df255ad599584f96cfa39b6d37e1a4b9f4 /channels/chan_misdn.c
parentab22019265621fd0f3c0034c7f070a6153177419 (diff)
Make chan_misdn_log() avoid generating the log message if logging is disabled.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@187634 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_misdn.c')
-rw-r--r--channels/chan_misdn.c44
1 files changed, 27 insertions, 17 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index 52b8f1d9f..db38db60f 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -6732,40 +6732,44 @@ static void chan_misdn_log(int level, int port, char *tmpl, ...)
char buf[1024];
char port_buf[8];
- if (! ((0 <= port) && (port <= max_ports))) {
+ if (!(0 <= port && port <= max_ports)) {
ast_log(LOG_WARNING, "cb_log called with out-of-range port number! (%d)\n", port);
port = 0;
level = -1;
+ } else if (!(level == -1
+ || (misdn_debug_only[port]
+ ? (level == 1 && misdn_debug[port]) || level == misdn_debug[port]
+ : level <= misdn_debug[port])
+ || (level <= misdn_debug[0] && !ast_strlen_zero(global_tracefile)))) {
+ /*
+ * We are not going to print anything so lets not
+ * go to all the work of generating a string.
+ */
+ return;
}
snprintf(port_buf, sizeof(port_buf), "P[%2d] ", port);
-
va_start(ap, tmpl);
vsnprintf(buf, sizeof(buf), tmpl, ap);
va_end(ap);
if (level == -1) {
ast_log(LOG_WARNING, "%s", buf);
- } else if (misdn_debug_only[port] ?
- (level == 1 && misdn_debug[port]) || (level == misdn_debug[port])
- : level <= misdn_debug[port]) {
-
+ } else if (misdn_debug_only[port]
+ ? (level == 1 && misdn_debug[port]) || level == misdn_debug[port]
+ : level <= misdn_debug[port]) {
ast_console_puts(port_buf);
ast_console_puts(buf);
}
- if ((level <= misdn_debug[0]) && !ast_strlen_zero(global_tracefile) ) {
+ if (level <= misdn_debug[0] && !ast_strlen_zero(global_tracefile)) {
char ctimebuf[30];
- time_t tm = time(NULL);
- char *tmp = ctime_r(&tm, ctimebuf), *p;
-
- FILE *fp = fopen(global_tracefile, "a+");
-
- p = strchr(tmp, '\n');
- if (p) {
- *p = ':';
- }
+ time_t tm;
+ char *tmp;
+ char *p;
+ FILE *fp;
+ fp = fopen(global_tracefile, "a+");
if (!fp) {
ast_console_puts("Error opening Tracefile: [ ");
ast_console_puts(global_tracefile);
@@ -6773,9 +6777,15 @@ static void chan_misdn_log(int level, int port, char *tmpl, ...)
ast_console_puts(strerror(errno));
ast_console_puts("\n");
- return ;
+ return;
}
+ tm = time(NULL);
+ tmp = ctime_r(&tm, ctimebuf);
+ p = strchr(tmp, '\n');
+ if (p) {
+ *p = ':';
+ }
fputs(tmp, fp);
fputs(" ", fp);
fputs(port_buf, fp);