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