commit 4943bbb066bb49603743ae03846689d2f82441b6 from: Alexander Barton date: Fri Sep 24 14:29:55 2010 UTC 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. commit - e2ba7e08b4a4ca73a74c10e7189b46f6d8dcfc75 commit + 4943bbb066bb49603743ae03846689d2f82441b6 blob - c973539c987d0c0a5c5c716c356e354cf4df6325 blob + fa69ffb12e654a1cbd008e37119fa06c914d7e5f --- src/tool/tool.c +++ src/tool/tool.c @@ -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 +#ifdef SYSLOG +#define SYSLOG_NAMES 1 +#include +#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- */ blob - d17e78729d8157c82c08aac1be5eb4a4e70344e0 blob + ea9e96b92b1d0fa874270239ca92dea2a1e49bdc --- src/tool/tool.h +++ src/tool/tool.h @@ -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,7 +29,12 @@ 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 + /* -eof- */