Blob


1 #include <netinet/in.h>
3 struct smtp_filter_connect {
4 char *hostname;
5 int af;
6 union {
7 struct in_addr addr;
8 struct in6_addr addr6;
9 };
10 };
12 enum filter_decision {
13 FILTER_PROCEED = 0,
14 FILTER_REJECT,
15 FILTER_DISCONNECT,
16 FILTER_REWRITE
17 };
19 int smtp_register_filter_connect(enum filter_decision (*cb)(char *, int, time_t,
20 char *, char *, uint64_t, uint64_t, struct smtp_filter_connect *));
21 void smtp_filter_proceed(uint64_t, uint64_t);
22 void smtp_filter_reject(uint64_t, uint64_t, int, const char *, ...)
23 __attribute__((__format__ (printf, 4, 5)));
24 void smtp_filter_disconnect(uint64_t, uint64_t, const char *, ...)
25 __attribute__((__format__ (printf, 3, 4)));
26 void smtp_run(void);