Mahlon E. Smith <mahlon@martini.nu> [Mon, 07 Nov 2011 10:43:09 -0800] rev 17
Retain the CDB struct between lookups, only freeing when reopening the
db. Big, big speed boost.
Mahlon E. Smith <mahlon@martini.nu> [Mon, 07 Nov 2011 10:43:06 -0800] rev 16
Ensure that all output is flushed immediately.
Fix free() bug for non-matching rules.
When creating the rules cdb, make the tmpfile in the cwd instead of /tmp.
Make regular expression matches case insensitive.
Mahlon E. Smith <mahlon@martini.nu> [Sat, 05 Nov 2011 12:52:29 -0700] rev 15
Add whitelisting rules, to negate other matches if they come first in
the ruleset. Remove the results set array completely, it's faster and
requires less memory to do the comparisons inline.
Mahlon E. Smith <mahlon@martini.nu> [Fri, 04 Nov 2011 20:34:28 -0700] rev 14
There isn't a fast way to look up ( value exists or null ) for every
piece of data that we're handed from squid -- a full table scan must be
performed for each request, regardless of any indexing in place. With
a decent number of rules, it's much, much slower than I anticipated,
making it fairly pointless to even do parsing in ragel for speed.
Trading some matching features (IPs, for now) for speed, and aiming at
just doing good host/path matching at the moment, using CDB for fast
host keying. Ripped out all the SQLite work, replacing it with a first
round of CDB lookups.
Added a ascii rulefile to cdb converter flag. Churning through the
requests again!
Also, fixed an off-by-one error with line extending.