import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)
+import sys
+
import twisted
from twisted.internet import reactor
from twisted.logger import LogLevel
import ipaddress
from ipaddress import AddressValueError
-import hippotat.slip as slip
-
from optparse import OptionParser
from configparser import ConfigParser
from configparser import NoOptionError
import collections
+import re as regexp
+
+import hippotat.slip as slip
+
defcfg = '''
[DEFAULT]
#[<client>] overrides
c = ConfigResults()
+def log_discard(packet, saddr, daddr, why):
+ print('DROP ', saddr, daddr, why)
+# syslog.syslog(syslog.LOG_DEBUG,
+# 'discarded packet %s -> %s (%s)' % (saddr, daddr, why))
+
#---------- packet parsing ----------
def packet_addrs(packet):
#---------- startup ----------
-def common_startup(defcfg):
+def common_startup():
twisted.logger.globalLogPublisher.addObserver(crash_on_critical)
optparser.add_option('-c', '--config', dest='configfile',
(opts, args) = optparser.parse_args()
if len(args): optparser.error('no non-option arguments please')
- cfg.read_string(defcfg)
+ re = regexp.compile('#.*')
+ cfg.read_string(re.sub('', defcfg))
cfg.read(opts.configfile)
def common_run():