Blob


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