xref: /openbsd-src/libexec/spamd/sdl.h (revision 66baed91cf18d6f3802b9f268dbe4a071dfc25e8)
1*66baed91Smillert /*	$OpenBSD: sdl.h,v 1.9 2017/10/18 17:31:01 millert Exp $ */
284d82a5fSderaadt 
3461ebb7fSbeck /*
44a7a5137Skjell  * Copyright (c) 2003-2007 Bob Beck.  All rights reserved.
5461ebb7fSbeck  *
6c86447aeSbeck  * Permission to use, copy, modify, and distribute this software for any
7c86447aeSbeck  * purpose with or without fee is hereby granted, provided that the above
8c86447aeSbeck  * copyright notice and this permission notice appear in all copies.
9461ebb7fSbeck  *
10c86447aeSbeck  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11c86447aeSbeck  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12c86447aeSbeck  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13c86447aeSbeck  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14c86447aeSbeck  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15c86447aeSbeck  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16c86447aeSbeck  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17461ebb7fSbeck  */
18461ebb7fSbeck 
19461ebb7fSbeck #ifndef _SDL_H_
20461ebb7fSbeck #define _SDL_H_
21461ebb7fSbeck 
22461ebb7fSbeck #include <sys/types.h>
23461ebb7fSbeck #include <sys/socket.h>
24461ebb7fSbeck 
25694ff69bSmillert /* spamd netblock (black) list entry (ipv4) */
26694ff69bSmillert struct sdentry_v4 {
27694ff69bSmillert 	struct in_addr sda;
28694ff69bSmillert 	struct in_addr sdm;
29694ff69bSmillert };
30694ff69bSmillert 
31694ff69bSmillert struct sdentries_v4 {
32694ff69bSmillert 	struct sdentry_v4 *addrs;
33694ff69bSmillert 	u_int naddrs;
34694ff69bSmillert };
35694ff69bSmillert 
36694ff69bSmillert struct sdaddr_v6 {
37694ff69bSmillert 	union {
38694ff69bSmillert 		struct in6_addr		addr;
39694ff69bSmillert 		u_int32_t		addr32[4];
40694ff69bSmillert 	} _sda;		    /* 128-bit address */
41694ff69bSmillert #define addr32  _sda.addr32
42694ff69bSmillert };
43694ff69bSmillert 
44694ff69bSmillert /* spamd netblock (black) list entry (ipv6) */
45694ff69bSmillert struct sdentry_v6 {
46694ff69bSmillert 	struct sdaddr_v6 sda;
47694ff69bSmillert 	struct sdaddr_v6 sdm;
48694ff69bSmillert };
49694ff69bSmillert 
50694ff69bSmillert struct sdentries_v6 {
51694ff69bSmillert 	struct sdentry_v6 *addrs;
52694ff69bSmillert 	u_int naddrs;
53694ff69bSmillert };
54694ff69bSmillert 
5584d82a5fSderaadt /* spamd source list */
5684d82a5fSderaadt struct sdlist {
57461ebb7fSbeck 	char *tag;	/* sdlist source name */
58461ebb7fSbeck 	char *string;	/* Format (451) string with no smtp code or \r\n */
59694ff69bSmillert 	struct sdentries_v4 v4;
60694ff69bSmillert 	struct sdentries_v6 v6;
61461ebb7fSbeck };
62461ebb7fSbeck 
63694ff69bSmillert int	sdl_add(char *, char *, char **, u_int, char **, u_int);
64694ff69bSmillert void	sdl_del(char *);
65*66baed91Smillert int	sdl_check(struct sdlist *, int, void *);
66b1aaf36bSmillert struct sdlist **sdl_lookup(struct sdlist *, int, void *);
67461ebb7fSbeck 
68461ebb7fSbeck #endif	/* _SDL_H_ */
69