Added OptParse interface and selection of the DBus to be used (Session/System)
authorTobias Mueller <tobiasmue@gnome.org>
Thu, 13 Jan 2011 15:38:58 +0000 (16:38 +0100)
committerTobias Mueller <tobiasmue@gnome.org>
Thu, 13 Jan 2011 15:38:58 +0000 (16:38 +0100)
This is useful once we can read pcap, because we don't need any special privileges. Hence, testing will be much simpler.

pwnitter.py

index 6d0defa..faca125 100755 (executable)
@@ -7,6 +7,7 @@
 import dbus.service
 import dbus.mainloop.glib
 import getopt, sys, pcap, dpkt, re, httplib, urllib
+import logging
 import socket
 import time
 import gobject
@@ -223,10 +224,26 @@ def main():
 
 
 if __name__ == '__main__':
+    from optparse import OptionParser
+    parser = OptionParser("usage: %prog [options]")
+    parser.add_option("-l", "--loglevel", dest="loglevel", 
+                      help="Sets the loglevel to one of debug, info, warn, error, critical")
+    parser.add_option("-s", "--session", dest="use_session_bus",
+                      action="store_true", default=False,
+                      help="Bind Pwnitter to the SessionBus instead of the SystemBus")
+    (options, args) = parser.parse_args()
+    loglevel = {'debug': logging.DEBUG, 'info': logging.INFO,
+                'warn': logging.WARN, 'error': logging.ERROR,
+                'critical': logging.CRITICAL}.get(options.loglevel, "warn")
+    logging.basicConfig(level=loglevel)
+    log = logging.getLogger("Main")
+
     dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
 
-    #session_bus = dbus.SessionBus()
-    session_bus = dbus.SystemBus()
+    if options.use_session_bus:
+        session_bus = dbus.SessionBus()
+    else:
+        session_bus = dbus.SystemBus()
     name = dbus.service.BusName(NAME, session_bus)
     pwnitter = Pwnitter(session_bus, '/Pwnitter')
     #object.Start()