1*f1fab66eSDavid van Moolenbroek /* $NetBSD: hosts_ctl.c,v 1.5 2012/03/21 10:10:37 matt Exp $ */
2*f1fab66eSDavid van Moolenbroek
3*f1fab66eSDavid van Moolenbroek /*
4*f1fab66eSDavid van Moolenbroek * hosts_ctl() combines common applications of the host access control
5*f1fab66eSDavid van Moolenbroek * library routines. It bundles its arguments then calls the hosts_access()
6*f1fab66eSDavid van Moolenbroek * access control checker. The host name and user name arguments should be
7*f1fab66eSDavid van Moolenbroek * empty strings, STRING_UNKNOWN or real data. If a match is found, the
8*f1fab66eSDavid van Moolenbroek * optional shell command is executed.
9*f1fab66eSDavid van Moolenbroek *
10*f1fab66eSDavid van Moolenbroek * Restriction: this interface does not pass enough information to support
11*f1fab66eSDavid van Moolenbroek * selective remote username lookups or selective hostname double checks.
12*f1fab66eSDavid van Moolenbroek *
13*f1fab66eSDavid van Moolenbroek * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
14*f1fab66eSDavid van Moolenbroek */
15*f1fab66eSDavid van Moolenbroek
16*f1fab66eSDavid van Moolenbroek #include <sys/cdefs.h>
17*f1fab66eSDavid van Moolenbroek #ifndef lint
18*f1fab66eSDavid van Moolenbroek #if 0
19*f1fab66eSDavid van Moolenbroek static char sccsid[] = "@(#) hosts_ctl.c 1.4 94/12/28 17:42:27";
20*f1fab66eSDavid van Moolenbroek #else
21*f1fab66eSDavid van Moolenbroek __RCSID("$NetBSD: hosts_ctl.c,v 1.5 2012/03/21 10:10:37 matt Exp $");
22*f1fab66eSDavid van Moolenbroek #endif
23*f1fab66eSDavid van Moolenbroek #endif
24*f1fab66eSDavid van Moolenbroek
25*f1fab66eSDavid van Moolenbroek #include <stdio.h>
26*f1fab66eSDavid van Moolenbroek
27*f1fab66eSDavid van Moolenbroek #include "tcpd.h"
28*f1fab66eSDavid van Moolenbroek
29*f1fab66eSDavid van Moolenbroek /* hosts_ctl - limited interface to the hosts_access() routine */
30*f1fab66eSDavid van Moolenbroek
31*f1fab66eSDavid van Moolenbroek int
hosts_ctl(char * daemon,char * name,char * addr,char * user)32*f1fab66eSDavid van Moolenbroek hosts_ctl(char *daemon, char *name, char *addr, char *user)
33*f1fab66eSDavid van Moolenbroek {
34*f1fab66eSDavid van Moolenbroek struct request_info request;
35*f1fab66eSDavid van Moolenbroek
36*f1fab66eSDavid van Moolenbroek return (hosts_access(request_init(&request,
37*f1fab66eSDavid van Moolenbroek RQ_DAEMON, daemon,
38*f1fab66eSDavid van Moolenbroek RQ_CLIENT_NAME, name,
39*f1fab66eSDavid van Moolenbroek RQ_CLIENT_ADDR, addr,
40*f1fab66eSDavid van Moolenbroek RQ_USER, user,
41*f1fab66eSDavid van Moolenbroek 0)));
42*f1fab66eSDavid van Moolenbroek }
43