Mercurial > dnsbl
annotate src/scanner.h @ 231:4d6bd04d93fa stable-6-0-22
Fix memory leak in suppressed auto whitelisting.
author | Carl Byington <carl@five-ten-sg.com> |
---|---|
date | Fri, 08 May 2009 15:17:52 -0700 |
parents | 82886d4dd71f |
children | c0d2e99c0a1d |
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 #include "dnsbl.h" | |
13 | |
14 //////////////////////////////////////////////// | |
15 // memory for the content scanner | |
16 // | |
17 class recorder | |
18 { | |
214
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
19 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
|
20 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
|
21 string_set *tlds; // valid tlds |
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 *cctlds; // valid cctlds |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
23 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
|
24 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
|
25 size_t binary_tags; |
74 | 26 |
27 public: | |
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(mlfiPriv *priv_, string_set &html_tags_, string_set &tlds_, string_set &cctlds_); |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
29 ~recorder() { empty(); }; |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
30 void empty(); |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
31 void new_url(char *host); |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
32 void new_tag(char *tag); |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
33 void binary(); |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
34 void syslog(char *buf) { my_syslog(priv, buf); }; |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
35 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
|
36 string_set *get_cctlds() { return cctlds; }; |
82886d4dd71f
Fixes to compile on Fedora 9 and for const correctness.
Carl Byington <carl@five-ten-sg.com>
parents:
152
diff
changeset
|
37 string_set *get_tlds() { return tlds; }; |
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 |