|
|
@@ -147,6 +147,48 @@ int turn_mutex_destroy(turn_mutex* mutex) {
|
|
|
|
|
|
///////////////////////// LOG ///////////////////////////////////
|
|
|
|
|
|
+/* syslog facility */
|
|
|
+/*BVB-594 Syslog facility */
|
|
|
+static char* str_fac[]={"LOG_AUTH","LOG_CRON","LOG_DAEMON",
|
|
|
+ "LOG_KERN","LOG_LOCAL0","LOG_LOCAL1",
|
|
|
+ "LOG_LOCAL2","LOG_LOCAL3","LOG_LOCAL4","LOG_LOCAL5",
|
|
|
+ "LOG_LOCAL6","LOG_LOCAL7","LOG_LPR","LOG_MAIL",
|
|
|
+ "LOG_NEWS","LOG_USER","LOG_UUCP",
|
|
|
+ "LOG_AUTHPRIV","LOG_FTP","LOG_SYSLOG",
|
|
|
+ 0};
|
|
|
+
|
|
|
+static int int_fac[]={LOG_AUTH , LOG_CRON , LOG_DAEMON ,
|
|
|
+ LOG_KERN , LOG_LOCAL0 , LOG_LOCAL1 ,
|
|
|
+ LOG_LOCAL2 , LOG_LOCAL3 , LOG_LOCAL4 , LOG_LOCAL5 ,
|
|
|
+ LOG_LOCAL6 , LOG_LOCAL7 , LOG_LPR , LOG_MAIL ,
|
|
|
+ LOG_NEWS , LOG_USER , LOG_UUCP,
|
|
|
+ LOG_AUTHPRIV,LOG_FTP,LOG_SYSLOG,
|
|
|
+ 0};
|
|
|
+
|
|
|
+static int syslog_facility = 0;
|
|
|
+
|
|
|
+static int str2facility(char *s)
|
|
|
+{
|
|
|
+ int i;
|
|
|
+ for (i=0; str_fac[i]; i++) {
|
|
|
+ if (!strcasecmp(s,str_fac[i]))
|
|
|
+ return int_fac[i];
|
|
|
+ }
|
|
|
+ return -1;
|
|
|
+}
|
|
|
+
|
|
|
+void set_syslog_facility(char *val)
|
|
|
+{
|
|
|
+ if(val == NULL){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ int tmp = str2facility(val);
|
|
|
+ if(tmp == -1){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ syslog_facility = tmp;
|
|
|
+}
|
|
|
+
|
|
|
#if defined(TURN_LOG_FUNC_IMPL)
|
|
|
extern void TURN_LOG_FUNC_IMPL(TURN_LOG_LEVEL level, const char* format, va_list args);
|
|
|
#endif
|
|
|
@@ -510,7 +552,7 @@ void turn_log_func_default(TURN_LOG_LEVEL level, const char* format, ...)
|
|
|
fwrite(s, so_far, 1, stdout);
|
|
|
/* write to syslog or to log file */
|
|
|
if(to_syslog) {
|
|
|
- syslog(get_syslog_level(level),"%s",s);
|
|
|
+ syslog(syslog_facility|get_syslog_level(level),"%s",s);
|
|
|
} else {
|
|
|
log_lock();
|
|
|
set_rtpfile();
|