Mercurial > dnsbl
annotate src/scanner.h @ 451:f2bc221240e8 stable-6-0-70
add unsigned_black for enforcement of dmarc policy
author | Carl Byington <carl@five-ten-sg.com> |
---|---|
date | Mon, 04 Jun 2018 16:25:06 -0700 |
parents | f9165d9aa689 |
children | 5209e92b4885 |
rev | line source |
---|---|
143 | 1 /* |
2 | |
152 | 3 Copyright (c) 2007 Carl Byington - 510 Software Group, released under |
4 the GPL version 3 or any later version at your choice available at | |
5 http://www.gnu.org/licenses/gpl-3.0.txt | |
143 | 6 |
7 */ | |
8 | |
74 | 9 #ifndef scanner_include |
10 #define scanner_include | |
11 | |
12 //////////////////////////////////////////////// | |
13 // memory for the content scanner | |
14 // | |
15 class recorder | |
16 { | |
214
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
17 mlfiPriv *priv; // needed for syslog |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
18 string_set *html_tags; // valid tags |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
19 string_set *tlds; // valid tlds |
270
f92f24950bd3
Use mozilla prefix list for tld checking, Enable surbl/uribl/dbl rhs lists
Carl Byington <carl@five-ten-sg.com>
parents:
236
diff
changeset
|
20 string_set *tldwilds; // valid wildcard tlds |
f92f24950bd3
Use mozilla prefix list for tld checking, Enable surbl/uribl/dbl rhs lists
Carl Byington <carl@five-ten-sg.com>
parents:
236
diff
changeset
|
21 string_set *tldnots; // invalid tlds |
214
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
22 string_set hosts; |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
23 size_t bad_html_tags; |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
24 size_t binary_tags; |
74 | 25 |
26 public: | |
270
f92f24950bd3
Use mozilla prefix list for tld checking, Enable surbl/uribl/dbl rhs lists
Carl Byington <carl@five-ten-sg.com>
parents:
236
diff
changeset
|
27 recorder(mlfiPriv *priv_, string_set &html_tags_, string_set &tlds_, string_set &tldwilds_, string_set &tldnots_); |
214
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
28 ~recorder() { empty(); }; |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
29 void empty(); |
236
c0d2e99c0a1d
Add surbl checks on the smtp helo value, client reverse dns name, and mail from domain name
Carl Byington <carl@five-ten-sg.com>
parents:
214
diff
changeset
|
30 void new_url(const char *host); |
c0d2e99c0a1d
Add surbl checks on the smtp helo value, client reverse dns name, and mail from domain name
Carl Byington <carl@five-ten-sg.com>
parents:
214
diff
changeset
|
31 void new_tag(const char *tag); |
214
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
32 void binary(); |
236
c0d2e99c0a1d
Add surbl checks on the smtp helo value, client reverse dns name, and mail from domain name
Carl Byington <carl@five-ten-sg.com>
parents:
214
diff
changeset
|
33 void syslog(const char *buf) { my_syslog(priv, buf); }; |
214
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
34 mlfiPriv *get_priv() { return priv; }; |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
35 string_set *get_tlds() { return tlds; }; |
270
f92f24950bd3
Use mozilla prefix list for tld checking, Enable surbl/uribl/dbl rhs lists
Carl Byington <carl@five-ten-sg.com>
parents:
236
diff
changeset
|
36 string_set *get_tldwilds() { return tldwilds; }; |
f92f24950bd3
Use mozilla prefix list for tld checking, Enable surbl/uribl/dbl rhs lists
Carl Byington <carl@five-ten-sg.com>
parents:
236
diff
changeset
|
37 string_set *get_tldnots() { return tldnots; }; |
214
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
38 string_set &get_hosts() { return hosts; }; |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
39 bool excessive_bad_tags(size_t limit){ return (limit > 0) && (bad_html_tags > limit) && (bad_html_tags > 3*binary_tags); }; |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
40 bool excessive_hosts(size_t limit) { return (limit > 0) && (hosts.size() > limit); }; |
147 | 41 |
74 | 42 }; |
43 | |
44 | |
45 //////////////////////////////////////////////// | |
46 // the content scanner | |
47 // | |
75 | 48 class fsa; |
74 | 49 class url_scanner { |
214
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
50 fsa *host_parser; |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
51 fsa *tags_parser; |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
52 fsa *urls_parser; |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
53 fsa *urld_parser; |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
54 fsa *html_parser; |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
55 fsa *mime_parser; |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
56 fsa *b64_parser; |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
57 fsa *uu_parser; |
74 | 58 |
59 public: | |
214
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
60 url_scanner(recorder *memory); |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
61 ~url_scanner(); |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
62 void scan(u_char *buffer, size_t length); |
74 | 63 }; |
64 | |
65 #endif |