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