Mercurial > dnsbl
diff src/scanner.cpp @ 12:6ac6d6b822ce stable-2-0
fix memory leak with duplicate url host names,
document differences from sendmail.mc feature
author | carl |
---|---|
date | Fri, 23 Apr 2004 22:45:10 -0700 |
parents | 2c206836b4cc |
children | 2ae8d953f1d0 |
line wrap: on
line diff
--- a/src/scanner.cpp Thu Apr 22 20:19:01 2004 -0700 +++ b/src/scanner.cpp Fri Apr 23 22:45:10 2004 -0700 @@ -825,18 +825,18 @@ state st; state init; fsa* next; - string_set *urls; + string_set *hosts; - fsa(state init, fsa* next_, string_set *urls_); + fsa(state init, fsa* next_, string_set *hosts_); void push(u_char *buf, int len); }; -fsa::fsa(state init_, fsa *next_, string_set *urls_) { +fsa::fsa(state init_, fsa *next_, string_set *hosts_) { count = 0; st = init_; init = init_; next = next_; - urls = urls_; + hosts = hosts_; } void fsa::push(u_char *buf, int len) { @@ -866,7 +866,7 @@ pending[count-1] = 0; if (strncasecmp((const char *)pending, "http://", 7) == 0) { char *p = (char *)pending + 7; - if (strchr(p, '.')) urls->insert(strdup(p)); // require at least one . in a dns name + if (strchr(p, '.')) register_string(*hosts, p); // require at least one . in a dns name } } } // fall thru @@ -969,13 +969,13 @@ fsa *mime_parser; fsa *b64_parser; - url_scanner(string_set *urls); + url_scanner(string_set *hosts); ~url_scanner(); void scan(u_char *buffer, size_t length); }; -url_scanner::url_scanner(string_set *urls) { - urls_parser = new fsa(u_init, NULL, urls); +url_scanner::url_scanner(string_set *hosts) { + urls_parser = new fsa(u_init, NULL, hosts); html_parser = new fsa(e_init, urls_parser, NULL); mime_parser = new fsa(m_init, html_parser, NULL); b64_parser = new fsa(b_init, mime_parser, NULL);