Classes: BlacklistCategory, BlacklistKeyword, BlacklistMatch, BootHistory, BypassRow, Bypasses, ConfigSubsystem, Database, Extension, Filter, History, HistoryRow, MainApplication, MyXml, Options, Report, ReportBase, ReportSubsystem, Request, Sniffer, SnifferSubsystem, SnifferThread, Warnings, oldutmp, sniff_ethernet, sniff_ip, sniff_tcp, utmplist
Types: Blacklist, Extensions, tcp_seq
This struct holds each specific category.
This is a small struct to hold each keyword, as a string, compiled as
separate regular expressions and the adherent strength.
If the filter catches a match, in other words a suspicious URL, it's
stored inside a BlacklistMatch.
BootHistory processes the computer's boot history to determine whether or
not Net Responsibility have been shut down manually.
A simple class to contain each Bypass.
Bypasses is able to store all useful information about attempts to bypass
the software.
ConfigSubsystem is a Subsystem that takes care of the configuration.
Database handles all connections to the SQLite database.
The strength of the BlacklistMatch will also take the type of the URL in
consideration.
This class will run all test to find out if the URLs are appropriate or
not.
The History class is especially important to understand if you're writing
a report plugin.
A struct that contains each row of the urls table.
MainApplication is the skeleton of Net Responsibility.
MyXml inherits XMLConfiguration and adds some extra functionality to it.
Poco::Util::ServerApplication is already handling configurations and
arguments, but it's way too flexible for us.
This class is generating the reports.
ReportBase provides basic functionality for making and sending reports,
but must be inherited by Report.
ReportSubsystem is a Poco::Util::Subsystem that determines if we should
send a report, and makes sure it's done properly.
Request is in charge of interaction with the server.
Sniffer sets up several SnifferThreads.
SnifferSubsystem is a Subsystem that takes care of setting up Sniffer.
SnifferThread is a thread that listens for HTTP requests on a specific
interface, and makes sure they're getting logged.
Warnings is able to store all inappropriate URLs and useful additional info
Iterate through it as with History.
Double linked list of struct utmp's
typedef vector < BlacklistCategory > Blacklist;
Blacklist is the top-level container for all the blacklists.
typedef vector < Extension > Extensions;
typedef u_int tcp_seq;
What kind of bypass is it?