Skip to content

Commit

Permalink
Make tcpwrappers use the magic in syslog.h for getting syslog facility
Browse files Browse the repository at this point in the history
and level names.

Add FreeBSD tag.

PR:		24218
Approved by:	markm
  • Loading branch information
dwmalone committed Jan 14, 2001
1 parent 3ce9aa9 commit b8980b2
Showing 1 changed file with 10 additions and 100 deletions.
110 changes: 10 additions & 100 deletions contrib/tcp_wrappers/options.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
* control to another program). In verification mode (dry_run flag is set)
* such options should clear the "dry_run" flag to inform the caller of this
* course of action.
*
* $FreeBSD$
*/

#ifndef lint
Expand All @@ -41,6 +43,7 @@ static char sccsid[] = "@(#) options.c 1.17 96/02/11 17:01:31";
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#define SYSLOG_NAMES
#include <syslog.h>
#include <pwd.h>
#include <grp.h>
Expand Down Expand Up @@ -435,110 +438,17 @@ struct request_info *request;
tcpd_jump("memory allocation failure");
}

/*
* The severity option goes last because it comes with a huge amount of ugly
* #ifdefs and tables.
*/

struct syslog_names {
char *name;
int value;
};

static struct syslog_names log_fac[] = {
#ifdef LOG_KERN
"kern", LOG_KERN,
#endif
#ifdef LOG_USER
"user", LOG_USER,
#endif
#ifdef LOG_MAIL
"mail", LOG_MAIL,
#endif
#ifdef LOG_DAEMON
"daemon", LOG_DAEMON,
#endif
#ifdef LOG_AUTH
"auth", LOG_AUTH,
#endif
#ifdef LOG_LPR
"lpr", LOG_LPR,
#endif
#ifdef LOG_NEWS
"news", LOG_NEWS,
#endif
#ifdef LOG_UUCP
"uucp", LOG_UUCP,
#endif
#ifdef LOG_CRON
"cron", LOG_CRON,
#endif
#ifdef LOG_LOCAL0
"local0", LOG_LOCAL0,
#endif
#ifdef LOG_LOCAL1
"local1", LOG_LOCAL1,
#endif
#ifdef LOG_LOCAL2
"local2", LOG_LOCAL2,
#endif
#ifdef LOG_LOCAL3
"local3", LOG_LOCAL3,
#endif
#ifdef LOG_LOCAL4
"local4", LOG_LOCAL4,
#endif
#ifdef LOG_LOCAL5
"local5", LOG_LOCAL5,
#endif
#ifdef LOG_LOCAL6
"local6", LOG_LOCAL6,
#endif
#ifdef LOG_LOCAL7
"local7", LOG_LOCAL7,
#endif
0,
};

static struct syslog_names log_sev[] = {
#ifdef LOG_EMERG
"emerg", LOG_EMERG,
#endif
#ifdef LOG_ALERT
"alert", LOG_ALERT,
#endif
#ifdef LOG_CRIT
"crit", LOG_CRIT,
#endif
#ifdef LOG_ERR
"err", LOG_ERR,
#endif
#ifdef LOG_WARNING
"warning", LOG_WARNING,
#endif
#ifdef LOG_NOTICE
"notice", LOG_NOTICE,
#endif
#ifdef LOG_INFO
"info", LOG_INFO,
#endif
#ifdef LOG_DEBUG
"debug", LOG_DEBUG,
#endif
0,
};

/* severity_map - lookup facility or severity value */

static int severity_map(table, name)
struct syslog_names *table;
CODE *table;
char *name;
{
struct syslog_names *t;
CODE *t;

for (t = table; t->name; t++)
if (STR_EQ(t->name, name))
return (t->value);
for (t = table; t->c_name; t++)
if (STR_EQ(t->c_name, name))
return (t->c_val);
tcpd_jump("bad syslog facility or severity: \"%s\"", name);
/* NOTREACHED */
}
Expand All @@ -554,8 +464,8 @@ struct request_info *request;
char *level = split_at(value, '.');

allow_severity = deny_severity = level ?
severity_map(log_fac, value) | severity_map(log_sev, level) :
severity_map(log_sev, value);
severity_map(facilitynames, value) | severity_map(prioritynames, level)
: severity_map(prioritynames, value);
}

/* get_field - return pointer to next field in string */
Expand Down

0 comments on commit b8980b2

Please sign in to comment.