Blame


1 48c4bdc1 2019-04-04 martijn /*
2 48c4bdc1 2019-04-04 martijn * Copyright (c) 2019 Martijn van Duren <martijn@openbsd.org>
3 48c4bdc1 2019-04-04 martijn *
4 48c4bdc1 2019-04-04 martijn * Permission to use, copy, modify, and distribute this software for any
5 48c4bdc1 2019-04-04 martijn * purpose with or without fee is hereby granted, provided that the above
6 48c4bdc1 2019-04-04 martijn * copyright notice and this permission notice appear in all copies.
7 48c4bdc1 2019-04-04 martijn *
8 48c4bdc1 2019-04-04 martijn * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 48c4bdc1 2019-04-04 martijn * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 48c4bdc1 2019-04-04 martijn * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 48c4bdc1 2019-04-04 martijn * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 48c4bdc1 2019-04-04 martijn * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 48c4bdc1 2019-04-04 martijn * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 48c4bdc1 2019-04-04 martijn * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 48c4bdc1 2019-04-04 martijn */
16 48c4bdc1 2019-04-04 martijn #include <netinet/in.h>
17 48c4bdc1 2019-04-04 martijn
18 48c4bdc1 2019-04-04 martijn #include <netinet/in.h>
19 48c4bdc1 2019-04-04 martijn
20 48c4bdc1 2019-04-04 martijn struct inx_addr {
21 48c4bdc1 2019-04-04 martijn int af;
22 48c4bdc1 2019-04-04 martijn union {
23 48c4bdc1 2019-04-04 martijn struct in_addr addr;
24 48c4bdc1 2019-04-04 martijn struct in6_addr addr6;
25 48c4bdc1 2019-04-04 martijn };
26 48c4bdc1 2019-04-04 martijn };
27 48c4bdc1 2019-04-04 martijn
28 48c4bdc1 2019-04-04 martijn int smtp_register_filter_connect(void (*)(char *, int, struct timespec *,
29 48c4bdc1 2019-04-04 martijn char *, char *, uint64_t, uint64_t, char *, struct inx_addr *));
30 48c4bdc1 2019-04-04 martijn int smtp_register_filter_data(void (*)(char *, int, struct timespec *, char *,
31 48c4bdc1 2019-04-04 martijn char *, uint64_t, uint64_t));
32 48c4bdc1 2019-04-04 martijn int smtp_register_filter_dataline(void (*)(char *, int, struct timespec *, char *,
33 48c4bdc1 2019-04-04 martijn char *, uint64_t, uint64_t, char *));
34 748e39c7 2019-04-06 martijn int smtp_register_filter_commit(void (*)(char *, int, struct timespec *, char *,
35 748e39c7 2019-04-06 martijn char *, uint64_t, uint64_t));
36 48c4bdc1 2019-04-04 martijn int smtp_in_register_report_disconnect(void (*)(char *, int, struct timespec *,
37 48c4bdc1 2019-04-04 martijn char *, char *, uint64_t));
38 48c4bdc1 2019-04-04 martijn void smtp_filter_proceed(uint64_t, uint64_t);
39 48c4bdc1 2019-04-04 martijn void smtp_filter_reject(uint64_t, uint64_t, int, const char *, ...)
40 48c4bdc1 2019-04-04 martijn __attribute__((__format__ (printf, 4, 5)));
41 48c4bdc1 2019-04-04 martijn void smtp_filter_disconnect(uint64_t, uint64_t, const char *, ...)
42 48c4bdc1 2019-04-04 martijn __attribute__((__format__ (printf, 3, 4)));
43 48c4bdc1 2019-04-04 martijn void smtp_filter_dataline(uint64_t, uint64_t, const char *, ...)
44 48c4bdc1 2019-04-04 martijn __attribute__((__format__ (printf, 3, 4)));
45 48c4bdc1 2019-04-04 martijn void smtp_run(int);