]> git.meshlink.io Git - catta/blobdiff - avahi-utils/avahi-publish-service
* add avahi-utils in autoconf
[catta] / avahi-utils / avahi-publish-service
diff --git a/avahi-utils/avahi-publish-service b/avahi-utils/avahi-publish-service
deleted file mode 100755 (executable)
index d823f14..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/usr/bin/python2.4
-# -*-python-*-
-# $Id$
-
-import avahi, dbus, gobject, sys, getopt
-
-try:
-    import dbus.glib
-except ImportError, e:
-    pass
-
-def usage(retval = 0):
-    print "%s [options] <name> <type> <port> [<txt> ...]\n" % sys.argv[0]
-    print "   -h --help      Show this help"
-    print "   -d --domain    Domain where to register this service"
-    print "   -H --host      Host where this service resides"
-    sys.exit(retval)
-
-try:
-    opts, args = getopt.getopt(sys.argv[1:], "d:H:", ["help", "domain=", "host="])
-except getopt.GetoptError:
-    usage(2)
-
-domain = ""
-host = ""
-    
-for o, a in opts:
-    if o in ("-h", "--help"):
-        usage()
-
-    if o in ("-d", "--domain"):
-        domain = a
-
-    if o in ("-H", "--host"):
-        host = a
-
-if len(args) < 3:
-    sys.stderr.write("Invalid number of arguments\n")
-    sys.exit(1)
-
-name = args[0]
-stype = args[1]
-port = int(args[2])
-txt = args[3:]
-
-# python-dbus doesn't allow transmission of empty arrays, therefore we "fix" it with a bogus entry
-if len(txt) == 0:
-    txt.append("python-dbus=brain-damage")
-
-group = None
-n_rename = 0
-
-def remove_service():
-    global group
-
-    if not (group is None):
-        group.Free()
-        group = None
-
-def add_service():
-    global server, group, name, stype, domain, host, port, txt
-    assert group is None
-
-    print "Adding service '%s' of type '%s' ..." % (name, stype)
-    group = dbus.Interface(bus.get_object(avahi.DBUS_NAME, server.EntryGroupNew()), avahi.DBUS_INTERFACE_ENTRY_GROUP)
-    group.connect_to_signal('StateChanged', entry_group_state_changed)
-    group.AddService(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, name, stype, domain, host, dbus.UInt16(port), txt)
-    group.Commit()
-
-def entry_group_state_changed(state):
-    global name, server, n_rename
-    
-    if state == avahi.ENTRY_GROUP_ESTABLISHED:
-        print "Service established."
-    elif state == avahi.ENTRY_GROUP_COLLISION:
-
-        n_rename = n_rename + 1
-        if n_rename >= 12:
-            print "ERROR: No suitable service name found after %i retries, exiting." % n_rename
-            main_loop.quit()
-        else:
-            name = server.GetAlternativeServiceName(name)
-            print "WARNING: Service name collision, changing name to '%s' ..." % name
-            remove_service()
-            add_service()
-
-def server_state_changed(state):
-    if state == avahi.SERVER_COLLISION:
-        print "WARNING: Server name collision"
-        remove_service()
-    elif state == avahi.SERVER_RUNNING:
-        add_service()
-
-main_loop = gobject.MainLoop()
-
-bus = dbus.SystemBus()
-server = dbus.Interface(bus.get_object(avahi.DBUS_NAME, avahi.DBUS_PATH_SERVER), avahi.DBUS_INTERFACE_SERVER)
-server.connect_to_signal("StateChanged", server_state_changed)
-server_state_changed(server.GetState())
-
-try:
-    main_loop.run()
-except KeyboardInterrupt, k:
-    pass
-
-remove_service()