Merged revisions 248582 via svnmerge from
authorTilghman Lesher <tilghman@meg.abyt.es>
Wed, 24 Feb 2010 21:17:26 +0000 (21:17 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Wed, 24 Feb 2010 21:17:26 +0000 (21:17 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r248582 | tilghman | 2010-02-24 15:02:18 -0600 (Wed, 24 Feb 2010) | 7 lines

  Remove color code sequences from verbose messages that go to logfiles.
  (closes issue #16786)
   Reported by: dodo
   Patches:
         logger2.patch uploaded by dodo (license 989)
   Tested by: tilghman
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@248584 65c4cc65-6c06-0410-ace0-fbb531ad65f3

include/asterisk/term.h
main/logger.c
main/term.c

index d75cf99..bbdc753 100644 (file)
@@ -92,7 +92,7 @@ int ast_term_color_code(struct ast_str **str, int fgcolor, int bgcolor);
  */
 char *term_color_code(char *outbuf, int fgcolor, int bgcolor, int maxout);
 
-char *term_strip(char *outbuf, char *inbuf, int maxout);
+char *term_strip(char *outbuf, const char *inbuf, int maxout);
 
 void term_filter_escapes(char *line);
 
index 5dbceeb..15ec782 100644 (file)
@@ -832,12 +832,13 @@ static void logger_print_normal(struct logmsg *logmsg)
                                int res = 0;
 
                                /* If no file pointer exists, skip it */
-                               if (!chan->fileptr)
+                               if (!chan->fileptr) {
                                        continue;
-                               
+                               }
+
                                /* Print out to the file */
                                res = fprintf(chan->fileptr, "[%s] %s[%ld] %s: %s",
-                                             logmsg->date, logmsg->level_name, logmsg->process_id, logmsg->file, logmsg->message);
+                                             logmsg->date, logmsg->level_name, logmsg->process_id, logmsg->file, term_strip(buf, logmsg->message, BUFSIZ));
                                if (res <= 0 && !ast_strlen_zero(logmsg->message)) {
                                        fprintf(stderr, "**** Asterisk Logging Error: ***********\n");
                                        if (errno == ENOMEM || errno == ENOSPC)
index 142b388..5140e63 100644 (file)
@@ -268,9 +268,10 @@ char *term_color_code(char *outbuf, int fgcolor, int bgcolor, int maxout)
        return outbuf;
 }
 
-char *term_strip(char *outbuf, char *inbuf, int maxout)
+char *term_strip(char *outbuf, const char *inbuf, int maxout)
 {
-       char *outbuf_ptr = outbuf, *inbuf_ptr = inbuf;
+       char *outbuf_ptr = outbuf;
+       const char *inbuf_ptr = inbuf;
 
        while (outbuf_ptr < outbuf + maxout) {
                switch (*inbuf_ptr) {