mirror of
https://github.com/evilsocket/opensnitch.git
synced 2025-03-04 16:44:46 +01:00
OpenSnitch is a GNU/Linux interactive application firewall inspired by Little Snitch.
![]() The major steps are: - take advantage of sqlite's default autoincremented rowid column - add index of the db columns - when a filter is applied, we build a map of rowids corresponding to the filter - when user scrolls the view, query the db only for that portion of db which contains the rows to be displayed - because sqlite cannot use an index when a wildcard is at the start of the LIKE expression, e.g. "process LIKE '%sbin%'", use a workaround: - keep track of all distinct values in each column - check in python if any of the distinct values contain the filter string - reconstruct the query string: instead of "process LIKE '%sbin%'" we use "process IN (<list of distinct values containing 'sbin'>)" Minor steps: - mimic some QSqlQueryModel's methods so that our model can be a drop-in replacement - disable view's default scrollbar and use our own scrollbar which is aware of how many rows are in the db |
||
---|---|---|
.github | ||
daemon | ||
debian | ||
proto | ||
screenshots | ||
ui | ||
.gitignore | ||
LICENSE | ||
make_ads_rules.py | ||
Makefile | ||
README.md | ||
release.sh |
OpenSnitch is a GNU/Linux application firewall.
Installation and configuration
Please, refer to the documentation for detailed information.
Contributors
Disclaimer
THIS SOFTWARE IS A WORK IN PROGRESS, DO NOT EXPECT IT TO BE BUG FREE AND DO NOT RELY ON IT FOR ANY TYPE OF SECURITY.