HOSTS_ACCESS(3)

hosts_access, hosts_ctl - access control library

SYNOPSIS
#include "log_tcp.h"
int hosts_access(daemon, client)
char *daemon;
struct from_host *client;
int hosts_ctl(daemon, client_name, client_addr, client_user)
char *daemon;
char *client_host;
char *client_addr;
char *client_user;

DESCRIPTION
The routines described in this document are part of the libwrap.a library. They implement a pattern-based access control language with optional shell commands that are executed when a pattern fires.

In all cases, the daemon argument should specify a daemon process name (argv[0] value). The client host address should be a valid address, or FROM_UNKNOWN if address lookup failed. The client host name and user name should be empty strings if no information is available, FROM_UNKNOWN if lookup failed, or an actual host or user name.

hosts_access() consults the access control tables described in the hosts_access(5) manual page. If a match is found, an optional shell command is executed and the search terminates. hosts_access() returns zero if access should be denied.

hosts_ctl() is a wrapper around the hosts_access() routine with a perhaps more convenient interface. hosts_ctl() returns zero if access should be denied.

DIAGNOSTICS
Problems are reported via the syslog daemon.

SEE ALSO
hosts_access(5), format of the access control tables.

FILES
/etc/hosts.access, /etc/hosts.deny, access control tables.

BUGS
The functions described here do not make copies of their string-valued arguments. Beware of data from functions that overwrite their results upon each call.

hosts_access() uses the strtok() library function. This may interfere with other code that relies on strtok().

AUTHOR
Wietse Venema (wietse@wzv.win.tue.nl)
Department of Mathematics and Computing Science
Eindhoven University of Technology
Den Dolech 2, P.O. Box 513, 5600 MB Eindhoven, The Netherlands