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