xref: /openbsd/usr.sbin/ypserv/ypserv/acl.h (revision 40f5feb3)
1 /*	$OpenBSD: acl.h,v 1.7 2003/06/02 21:58:27 maja Exp $ */
2 
3 /*
4  * Copyright (c) 1994 Mats O Jansson <moj@stacken.kth.se>
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
17  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
20  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26  * SUCH DAMAGE.
27  */
28 
29 #ifndef _ACL_H_
30 #define _ACL_H_
31 
32 #define ACLD_ALL		2
33 #define ACLD_HOST		4
34 #define ACLD_NET		6
35 #define ACLD_HOST_DONE		4
36 #define ACLD_NET_DONE		4
37 #define ACLD_NET_MASK		2
38 #define ACLD_NET_EOL		2
39 
40 #define ACLS_INIT		1
41 #define ACLS_ALLOW		2
42 #define ACLS_DENY		3
43 #define ACLS_ALLOW_ALL		ACLS_ALLOW+ACLD_ALL		  /*  4 */
44 #define ACLS_DENY_ALL		ACLS_DENY+ACLD_ALL		  /*  5 */
45 #define ACLS_ALLOW_HOST		ACLS_ALLOW+ACLD_HOST		  /*  6 */
46 #define ACLS_DENY_HOST		ACLS_DENY+ACLD_HOST		  /*  7 */
47 #define ACLS_ALLOW_NET		ACLS_ALLOW+ACLD_NET		  /*  8 */
48 #define ACLS_DENY_NET		ACLS_DENY+ACLD_NET		  /*  9 */
49 #define ACLS_ALLOW_HOST_DONE	ACLS_ALLOW_HOST+ACLD_HOST_DONE	  /* 10 */
50 #define ACLS_DENY_HOST_DONE	ACLS_DENY_HOST+ACLD_HOST_DONE	  /* 11 */
51 #define ACLS_ALLOW_NET_DONE	ACLS_ALLOW_NET+ACLD_NET_DONE	  /* 12 */
52 #define ACLS_DENY_NET_DONE	ACLS_DENY_NET+ACLD_NET_DONE	  /* 13 */
53 #define ACLS_ALLOW_NET_MASK	ACLS_ALLOW_NET_DONE+ACLD_NET_MASK /* 14 */
54 #define ACLS_DENY_NET_MASK	ACLS_DENY_NET_DONE+ACLD_NET_MASK  /* 15 */
55 #define ACLS_ALLOW_NET_EOL	ACLS_ALLOW_NET_MASK+ACLD_NET_EOL  /* 16 */
56 #define ACLS_DENY_NET_EOL	ACLS_DENY_NET_MASK+ACLD_NET_EOL   /* 17 */
57 
58 #define ACLE_NONETMASK		18
59 #define ACLE_NONET		19
60 #define ACLE_NOHOST		20
61 #define ACLE_UVERB		21
62 #define ACLE_U2VERB		22
63 #define ACLE_UEOL		23
64 #define ACLE_OK			24
65 
66 struct	aclent {
67 struct	aclent	*next;
68 	int	allow;
69 	u_long	s_addr;
70 	u_long	s_mask;
71 };
72 
73 __BEGIN_DECLS
74 int		acl_check_host(struct in_addr *);
75 int		acl_init(char *);
76 int		acl_securenet(char *);
77 void		acl_reset(void);
78 __END_DECLS
79 
80 #endif /* !_ACL_H_ */
81