Permalink
Browse files

Added CLI argument for the database path.

  • Loading branch information...
1 parent 9b73e97 commit 3c505a14d2ac18336435ecf77313784730f6ea94 @jacobculley jacobculley committed May 9, 2017
Showing with 18 additions and 15 deletions.
  1. +11 −1 bin/opensnitch
  2. +5 −12 opensnitch/rule.py
  3. +2 −2 opensnitch/snitch.py
View
@@ -22,11 +22,20 @@ import sys
import logging
import warnings
+from os.path import expanduser
+
from optparse import OptionParser
+if 'SUDO_USER' in os.environ:
+ home = expanduser("~%s" % os.environ['SUDO_USER'])
+else:
+ home = expanduser("~%s" % os.environ['USER'])
+filename = os.path.join(home, "opensnitch.db")
+
parser = OptionParser()
parser.add_option( "--log-file", dest="logfile", default=None, help="Log to file.", metavar="FILE" )
parser.add_option( "--debug", dest="debug", action="store_true", default=False, help="Enable debug logs." )
+parser.add_option( "--database", dest="database", default=filename, help="Database path.", metavar="FILE" )
(options, args) = parser.parse_args()
@@ -59,8 +68,9 @@ warnings.filterwarnings("ignore", category=RuntimeWarning, module="gtk")
from opensnitch.snitch import Snitch
+
def main():
- snitch = Snitch()
+ snitch = Snitch(options.database)
try:
logging.info( "OpenSnitch v%s running with pid %d." % ( VERSION, os.getpid() ) )
View
@@ -17,8 +17,6 @@
# or write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
import logging
-import os
-from os.path import expanduser
from threading import Lock
import sqlite3
@@ -54,9 +52,9 @@ def matches( self, c ):
return True
class Rules:
- def __init__(self):
+ def __init__(self, database):
self.mutex = Lock()
- self.db = RulesDB()
+ self.db = RulesDB(database)
self.rules = self.db.load_rules()
def get_verdict( self, connection ):
@@ -99,16 +97,11 @@ def add_rule( self, connection, verdict, apply_to_all=False, save_option=Rule.UN
self.db.save_rule(r)
class RulesDB:
- def __init__(self):
- if 'SUDO_USER' in os.environ:
- self.home = expanduser("~%s" % os.environ['SUDO_USER'] )
- else:
- self.home = expanduser("~%s" % os.environ['USER'] )
- self.filename = os.path.join( self.home, "opensnitch.db" )
+ def __init__(self, filename):
- logging.info( "Using rules database from %s" % self.filename )
+ logging.info("Using rules database from %s" % filename)
- self.conn = sqlite3.connect(self.filename)
+ self.conn = sqlite3.connect(filename)
self._create_table()
def _create_table(self):
View
@@ -40,9 +40,9 @@ class Snitch:
"OUTPUT --protocol tcp -m mark --mark 101285 -j REJECT" )
# TODO: Support IPv6!
- def __init__( self ):
+ def __init__(self, database):
self.lock = Lock()
- self.rules = Rules()
+ self.rules = Rules(database)
self.dns = DNSCollector()
self.q = NetfilterQueue()
self.procmon = ProcMon()

0 comments on commit 3c505a1

Please sign in to comment.