New functions ngt_SyslogFacilityName() and ngt_SyslogFacilityID()
These both functions translate syslog facility names to ID numbers and vice versa. On systems that don't define the facilitynames[] array in syslog.h, we try to build one ourself.
This commit is contained in:
parent
e2ba7e08b4
commit
4943bbb066
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* ngIRCd -- The Next Generation IRC Daemon
|
||||
* Copyright (c)2001-2009 Alexander Barton (alex@barton.de)
|
||||
* Copyright (c)2001-2010 Alexander Barton (alex@barton.de)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -22,6 +22,11 @@
|
|||
|
||||
#include <netinet/in.h>
|
||||
|
||||
#ifdef SYSLOG
|
||||
#define SYSLOG_NAMES 1
|
||||
#include <syslog.h>
|
||||
#endif
|
||||
|
||||
#include "exp.h"
|
||||
#include "tool.h"
|
||||
|
||||
|
@ -122,4 +127,92 @@ ngt_TrimLastChr( char *String, const char Chr)
|
|||
} /* ngt_TrimLastChr */
|
||||
|
||||
|
||||
#ifdef SYSLOG
|
||||
|
||||
|
||||
#ifndef INTERNAL_MARK
|
||||
|
||||
#ifndef _code
|
||||
typedef struct _code {
|
||||
char *c_name;
|
||||
int c_val;
|
||||
} CODE;
|
||||
#endif
|
||||
|
||||
CODE facilitynames[] = {
|
||||
#ifdef LOG_AUTH
|
||||
{ "auth", LOG_AUTH },
|
||||
#endif
|
||||
#ifdef LOG_AUTHPRIV
|
||||
{ "authpriv", LOG_AUTHPRIV },
|
||||
#endif
|
||||
#ifdef LOG_CRON
|
||||
{ "cron", LOG_CRON },
|
||||
#endif
|
||||
#ifdef LOG_DAEMON
|
||||
{ "daemon", LOG_DAEMON },
|
||||
#endif
|
||||
#ifdef LOG_FTP
|
||||
{ "ftp", LOG_FTP },
|
||||
#endif
|
||||
#ifdef LOG_LPR
|
||||
{ "lpr", LOG_LPR },
|
||||
#endif
|
||||
#ifdef LOG_MAIL
|
||||
{ "mail", LOG_MAIL },
|
||||
#endif
|
||||
#ifdef LOG_NEWS
|
||||
{ "news", LOG_NEWS },
|
||||
#endif
|
||||
#ifdef LOG_UUCP
|
||||
{ "uucp", LOG_UUCP },
|
||||
#endif
|
||||
#ifdef LOG_USER
|
||||
{ "user", LOG_USER },
|
||||
#endif
|
||||
#ifdef LOG_LOCAL7
|
||||
{ "local0", LOG_LOCAL0 },
|
||||
{ "local1", LOG_LOCAL1 },
|
||||
{ "local2", LOG_LOCAL2 },
|
||||
{ "local3", LOG_LOCAL3 },
|
||||
{ "local4", LOG_LOCAL4 },
|
||||
{ "local5", LOG_LOCAL5 },
|
||||
{ "local6", LOG_LOCAL6 },
|
||||
{ "local7", LOG_LOCAL7 },
|
||||
#endif
|
||||
{ 0, -1 }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
GLOBAL char
|
||||
*ngt_SyslogFacilityName(int Facility)
|
||||
{
|
||||
int i = 0;
|
||||
while(facilitynames[i].c_name) {
|
||||
if (facilitynames[i].c_val == Facility)
|
||||
return facilitynames[i].c_name;
|
||||
i++;
|
||||
}
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
|
||||
GLOBAL int
|
||||
ngt_SyslogFacilityID(char *Name, int DefaultFacility)
|
||||
{
|
||||
int i = 0;
|
||||
while(facilitynames[i].c_name) {
|
||||
if (strcasecmp(facilitynames[i].c_name, Name) == 0)
|
||||
return facilitynames[i].c_val;
|
||||
i++;
|
||||
}
|
||||
return DefaultFacility;
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* -eof- */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* ngIRCd -- The Next Generation IRC Daemon
|
||||
* Copyright (c)2001-2008 by Alexander Barton (alex@barton.de)
|
||||
* Copyright (c)2001-2010 Alexander Barton (alex@barton.de)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -29,6 +29,11 @@ GLOBAL void ngt_TrimStr PARAMS((char *String ));
|
|||
GLOBAL char *ngt_UpperStr PARAMS((char *String ));
|
||||
GLOBAL char *ngt_LowerStr PARAMS((char *String ));
|
||||
|
||||
#ifdef SYSLOG
|
||||
GLOBAL char *ngt_SyslogFacilityName PARAMS((int Facility));
|
||||
GLOBAL int ngt_SyslogFacilityID PARAMS((char *Name, int DefaultFacility));
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue