mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-02 20:08:17 +00:00
core/logging: Fix broken syslog levels on older glibc.
The fix to ASTERISK-25407 introduced the usage of LOG_MAKEPRI. However
this macro is broken in older glibc (< 2.17); it would left-shift the
facility a second time, causing the resultant priority to become
invalid.
The syslog manpage mentions nothing about LOG_MAKEPRI and suggests this:
The priority argument is formed by ORing the facility and the level
values [...].
ASTERISK-25510 #close
Reported by: Michael Newton
Change-Id: Ia89debe7fac5ad090c7ef595c0707f31bb1e3d03
This commit is contained in:
committed by
Joshua Colp
parent
d7ee89b499
commit
87c9ab97ea
@@ -1514,7 +1514,8 @@ static void logger_print_normal(struct logmsg *logmsg)
|
||||
continue;
|
||||
}
|
||||
|
||||
syslog_level = LOG_MAKEPRI(chan->facility, syslog_level);
|
||||
/* Don't use LOG_MAKEPRI because it's broken in glibc<2.17 */
|
||||
syslog_level = chan->facility | syslog_level; /* LOG_MAKEPRI(chan->facility, syslog_level); */
|
||||
if (!chan->formatter.format_log(chan, logmsg, buf, BUFSIZ)) {
|
||||
syslog(syslog_level, "%s", buf);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user