提交 0f4e2136 编写于 作者: R Richard Levitte

Add more diversity to the possible log levels. Now we have full

coverage for all syslog level.
上级 d03e0f34
......@@ -170,7 +170,36 @@ static int MS_CALLBACK slg_write(BIO *b, const char *in, int inl)
int ret= inl;
char* buf;
char* pp;
int priority;
int priority, i;
static struct
{
int strl;
char str[10];
int log_level;
}
mapping[] =
{
{ 6, "PANIC ", LOG_EMERG },
{ 6, "EMERG ", LOG_EMERG },
{ 4, "EMR ", LOG_EMERG },
{ 6, "ALERT ", LOG_ALERT },
{ 4, "ALR ", LOG_ALERT },
{ 5, "CRIT ", LOG_CRIT },
{ 4, "CRI ", LOG_CRIT },
{ 6, "ERROR ", LOG_ERR },
{ 4, "ERR ", LOG_ERR },
{ 8, "WARNING ", LOG_WARNING },
{ 5, "WARN ", LOG_WARNING },
{ 4, "WAR ", LOG_WARNING },
{ 7, "NOTICE ", LOG_NOTICE },
{ 5, "NOTE ", LOG_NOTICE },
{ 4, "NOT ", LOG_NOTICE },
{ 5, "INFO ", LOG_INFO },
{ 4, "INF ", LOG_INFO },
{ 6, "DEBUG ", LOG_DEBUG },
{ 4, "DBG ", LOG_DEBUG },
{ 0, "", LOG_ERR } /* The default */
};
if((buf= (char *)OPENSSL_malloc(inl+ 1)) == NULL){
return(0);
......@@ -178,19 +207,10 @@ static int MS_CALLBACK slg_write(BIO *b, const char *in, int inl)
strncpy(buf, in, inl);
buf[inl]= '\0';
if(strncmp(buf, "ERR ", 4) == 0){
priority= LOG_ERR;
pp= buf+ 4;
}else if(strncmp(buf, "WAR ", 4) == 0){
priority= LOG_WARNING;
pp= buf+ 4;
}else if(strncmp(buf, "INF ", 4) == 0){
priority= LOG_INFO;
pp= buf+ 4;
}else{
priority= LOG_ERR;
pp= buf;
}
i = 0;
while(strncmp(buf, mapping[i].str, mapping[i].strl) != 0) i++;
priority = mapping[i].log_level;
pp = buf + mapping[i].strl;
xsyslog(b, priority, pp);
......@@ -257,16 +277,22 @@ static void xsyslog(BIO *bp, int priority, const char *string)
switch (priority)
{
case LOG_EMERG:
case LOG_ALERT:
case LOG_CRIT:
case LOG_ERR:
evtype = EVENTLOG_ERROR_TYPE;
break;
case LOG_WARNING:
evtype = EVENTLOG_WARNING_TYPE;
break;
case LOG_NOTICE:
case LOG_INFO:
case LOG_DEBUG:
evtype = EVENTLOG_INFORMATION_TYPE;
break;
default:
default: /* Should never happen, but set it
as error anyway. */
evtype = EVENTLOG_ERROR_TYPE;
break;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册