X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-python%2Favahi-discover.in;h=23dee801bf56d3def8c381f0b1f2912e072285b8;hb=bbe8d301e832744389f2c32cf440dd60f918bad7;hp=53bb2ce8c3d0f0b13a2ec2146d7befe56f78c847;hpb=d69dab67631a912244d2de9a3fd2eb5715f01185;p=catta diff --git a/avahi-python/avahi-discover.in b/avahi-python/avahi-discover.in index 53bb2ce..23dee80 100755 --- a/avahi-python/avahi-discover.in +++ b/avahi-python/avahi-discover.in @@ -24,8 +24,8 @@ import os, sys try: import avahi, gtk, gobject, dbus, avahi.ServiceTypeDatabase from avahi.SimpleGladeApp import SimpleGladeApp -except ImportError: - print "Sorry, to use this tool you need to install Avahi, pygtk and python-dbus." +except ImportError, e: + print "Sorry, to use this tool you need to install Avahi, pygtk and python-dbus.\n Error: %s" % e sys.exit(1) @@ -33,6 +33,7 @@ except ImportError: # It's really important to do this, else you won't see any events ## try: + from dbus import DBusException import dbus.glib except ImportError, e: pass @@ -40,6 +41,14 @@ except ImportError, e: service_type_browsers = {} service_browsers = {} +def error_msg(msg): + d = gtk.MessageDialog(parent=None, flags=gtk.DIALOG_MODAL, + type=gtk.MESSAGE_ERROR, buttons=gtk.BUTTONS_OK) + d.set_markup(msg) + d.show_all() + d.run() + d.destroy() + glade_dir = "@interfacesdir@" service_type_db = avahi.ServiceTypeDatabase.ServiceTypeDatabase() @@ -47,7 +56,7 @@ service_type_db = avahi.ServiceTypeDatabase.ServiceTypeDatabase() class Main_window(SimpleGladeApp): def __init__(self, path="avahi-discover.glade", root="main_window", domain=None, **kwargs): path = os.path.join(glade_dir, path) - gtk.window_set_default_icon_name("gnome-networktool") + gtk.window_set_default_icon_name("network-wired") SimpleGladeApp.__init__(self, path, root, domain, **kwargs) def on_tree_view_cursor_changed(self, widget, *args): @@ -162,8 +171,14 @@ class Main_window(SimpleGladeApp): if self.stype is None: print "Browsing domain '%s' on %i.%i ..." % (domain, interface, protocol) - - b = dbus.Interface(self.bus.get_object(avahi.DBUS_NAME, self.server.ServiceTypeBrowserNew(interface, protocol, domain, dbus.UInt32(0))), avahi.DBUS_INTERFACE_SERVICE_TYPE_BROWSER) + + try: + b = dbus.Interface(self.bus.get_object(avahi.DBUS_NAME, self.server.ServiceTypeBrowserNew(interface, protocol, domain, dbus.UInt32(0))), avahi.DBUS_INTERFACE_SERVICE_TYPE_BROWSER) + except DBusException, e: + print e + error_msg("You should check that the avahi daemon is running.\n\nError : %s" % e) + sys.exit(0) + b.connect_to_signal('ItemNew', self.new_service_type) service_type_browsers[(interface, protocol, domain)] = b