Module: sip-router
Branch: master
Commit: 95bf86454e277a7a0ef1c41c2995806f65eda17b
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=95bf86454e277a7a0ef1c41c2995806f65eda17b

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date:   Thu Aug 20 10:41:02 2009 +0300

core: added log_name config parameter

- log_name allows to set app name to be used when printing to syslog
- useful to filter log messages when running many instance on same server

---

 cfg.lex  |    2 ++
 cfg.y    |    3 +++
 dprint.h |    1 +
 main.c   |    4 +++-
 4 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/cfg.lex b/cfg.lex
index a99968d..32aed32 100644
--- a/cfg.lex
+++ b/cfg.lex
@@ -281,6 +281,7 @@ DEBUG       debug
 FORK   fork
 LOGSTDERROR    log_stderror
 LOGFACILITY    log_facility
+LOGNAME                log_name
 LISTEN         listen
 ALIAS          alias
 SR_AUTO_ALIASES        auto_aliases
@@ -577,6 +578,7 @@ EAT_ABLE    [\ \t\b\r]
 <INITIAL>{FORK}                { count(); yylval.strval=yytext; return FORK; }
 <INITIAL>{LOGSTDERROR} { yylval.strval=yytext; return LOGSTDERROR; }
 <INITIAL>{LOGFACILITY} { yylval.strval=yytext; return LOGFACILITY; }
+<INITIAL>{LOGNAME}     { yylval.strval=yytext; return LOGNAME; }
 <INITIAL>{LISTEN}      { count(); yylval.strval=yytext; return LISTEN; }
 <INITIAL>{ALIAS}       { count(); yylval.strval=yytext; return ALIAS; }
 <INITIAL>{SR_AUTO_ALIASES}     { count(); yylval.strval=yytext;
diff --git a/cfg.y b/cfg.y
index b51a272..e9e8d8a 100644
--- a/cfg.y
+++ b/cfg.y
@@ -345,6 +345,7 @@ static int case_check_default(struct case_stms* stms);
 %token FORK
 %token LOGSTDERROR
 %token LOGFACILITY
+%token LOGNAME
 %token LISTEN
 %token ALIAS
 %token SR_AUTO_ALIASES
@@ -758,6 +759,8 @@ assign_stm:
                        default_core_cfg.log_facility=i_tmp;
        }
        | LOGFACILITY EQUAL error { yyerror("ID expected"); }
+       | LOGNAME EQUAL STRING { log_name=$3; }
+       | LOGNAME EQUAL error { yyerror("string value expected"); }
        | DNS EQUAL NUMBER   { received_dns|= ($3)?DO_DNS:0; }
        | DNS EQUAL error { yyerror("boolean value expected"); }
        | REV_DNS EQUAL NUMBER { received_dns|= ($3)?DO_REV_DNS:0; }
diff --git a/dprint.h b/dprint.h
index 54d47fa..8f9d743 100644
--- a/dprint.h
+++ b/dprint.h
@@ -109,6 +109,7 @@ struct log_level_info {
 
 #define is_printable(level) (cfg_get(core, core_cfg, debug)>=(level))
 extern struct log_level_info log_level_info[];
+extern char *log_name;
 
 #ifndef NO_SIG_DEBUG
 /* protection against "simultaneous" printing from signal handlers */
diff --git a/main.c b/main.c
index 23455e7..9a771f8 100644
--- a/main.c
+++ b/main.c
@@ -321,6 +321,8 @@ int sig_flag = 0;              /* last signal received */
 int dont_fork = 0;
 int dont_daemonize = 0;
 int log_stderr = 0;
+/* set custom app name for syslog printing */
+char *log_name = 0;
 pid_t creator_pid = (pid_t) -1;
 int config_check = 0;
 /* check if reply first via host==us */
@@ -2059,7 +2061,7 @@ try_again:
 #endif /* USE_SCTP */
        /* init_daemon? */
        if (!dont_fork){
-               if ( daemonize(argv[0]) <0 ) goto error;
+               if ( daemonize((log_name==0)?argv[0]:log_name) <0 ) goto error;
        }
        if (install_sigs() != 0){
                fprintf(stderr, "ERROR: could not install the signal 
handlers\n");


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to