summaryrefslogtreecommitdiffstats
path: root/avahi-python
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2005-11-16 22:34:12 +0000
committerLennart Poettering <lennart@poettering.net>2005-11-16 22:34:12 +0000
commit93ac6c737b2566e76162ad70c35c0167de82c76b (patch)
tree098657bff83360ac7192648166613d37eebaf553 /avahi-python
parente40d90b546b31082e9a2dc415c215c5e8d55196c (diff)
Implement avahi-publish{-address, service} in C
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@988 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
Diffstat (limited to 'avahi-python')
-rw-r--r--avahi-python/Makefile.am12
-rwxr-xr-xavahi-python/avahi-publish-address.in96
-rwxr-xr-xavahi-python/avahi-publish-service.in134
3 files changed, 0 insertions, 242 deletions
diff --git a/avahi-python/Makefile.am b/avahi-python/Makefile.am
index efb529e..7f4980a 100644
--- a/avahi-python/Makefile.am
+++ b/avahi-python/Makefile.am
@@ -23,8 +23,6 @@ AM_CFLAGS=-I$(top_srcdir)
AM_CFLAGS+='-DDEBUG_TRAP=__asm__("int $$3")'
EXTRA_DIST = \
- avahi-publish-address.in \
- avahi-publish-service.in \
avahi-bookmarks.in \
avahi-discover.in \
avahi-discover.desktop.in
@@ -36,8 +34,6 @@ if HAVE_PYTHON_DBUS
if HAVE_PYGTK
pythonscripts = \
- avahi-publish-address \
- avahi-publish-service \
avahi-bookmarks \
avahi-discover
@@ -53,14 +49,6 @@ avahi-discover: avahi-discover.in
-e 's,@interfacesdir\@,$(interfacesdir),g' $< > $@
chmod +x $@
-avahi-publish-address: avahi-publish-address.in
- sed -e 's,@PYTHON\@,$(PYTHON),g' $< > $@
- chmod +x $@
-
-avahi-publish-service: avahi-publish-service.in
- sed -e 's,@PYTHON\@,$(PYTHON),g' $< > $@
- chmod +x $@
-
avahi-bookmarks: avahi-bookmarks.in
sed -e 's,@PYTHON\@,$(PYTHON),g' $< > $@
chmod +x $@
diff --git a/avahi-python/avahi-publish-address.in b/avahi-python/avahi-publish-address.in
deleted file mode 100755
index 4ffebd7..0000000
--- a/avahi-python/avahi-publish-address.in
+++ /dev/null
@@ -1,96 +0,0 @@
-#!@PYTHON@
-# -*-python-*-
-# $Id$
-
-# This file is part of avahi.
-#
-# avahi is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as
-# published by the Free Software Foundation; either version 2 of the
-# License, or (at your option) any later version.
-#
-# avahi is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
-# License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with avahi; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-# USA.
-
-import sys, getopt, string
-
-try:
- import avahi, gobject, dbus
-except ImportError:
- print "Sorry, to use this tool you need to install Avahi, pygtk and python-dbus."
- sys.exit(1)
-
-try:
- import dbus.glib
-except ImportError, e:
- pass
-
-def usage(retval = 0):
- print "%s <name> <address>" % sys.argv[0]
- sys.exit(retval)
-
-if len(sys.argv) != 3:
- usage(2)
-
-name = sys.argv[1]
-address = sys.argv[2]
-
-group = None
-n_rename = 0
-
-def remove_address():
- global group
-
- if not (group is None):
- group.Free()
- group = None
-
-def add_address():
- global server, group, name, address
- assert group is None
-
- print "Adding address '%s' for '%s' ..." % (name, address)
- 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.AddAddress(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, dbus.UInt32(0), name, address)
- group.Commit()
-
-def entry_group_state_changed(state):
- global name, server, n_rename, main_loop
-
- if state == avahi.ENTRY_GROUP_ESTABLISHED:
- print "Address established."
- elif state == avahi.ENTRY_GROUP_COLLISION:
-
- n_rename = n_rename + 1
- if n_rename >= 12:
- print "ERROR: No suitable name found after %i retries, exiting." % n_rename
- main_loop.quit()
- else:
- hn = name.split('.')
- hn[0] = server.GetAlternativeHostName(hn[0])
- name = string.join(hn, '.')
- print "WARNING: Address/host name collision, changing name to '%s' ..." % name
- remove_address()
- add_address()
-
-main_loop = gobject.MainLoop()
-
-bus = dbus.SystemBus()
-server = dbus.Interface(bus.get_object(avahi.DBUS_NAME, avahi.DBUS_PATH_SERVER), avahi.DBUS_INTERFACE_SERVER)
-
-add_address()
-
-try:
- main_loop.run()
-except KeyboardInterrupt, k:
- pass
-
-remove_address()
diff --git a/avahi-python/avahi-publish-service.in b/avahi-python/avahi-publish-service.in
deleted file mode 100755
index 3f40fd0..0000000
--- a/avahi-python/avahi-publish-service.in
+++ /dev/null
@@ -1,134 +0,0 @@
-#!@PYTHON@
-# -*-python-*-
-# $Id$
-
-# This file is part of avahi.
-#
-# avahi is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as
-# published by the Free Software Foundation; either version 2 of the
-# License, or (at your option) any later version.
-#
-# avahi is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
-# License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with avahi; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-# USA.
-
-import sys, getopt
-
-try:
- import avahi, gobject, dbus
-except ImportError:
- print "Sorry, to use this tool you need to install Avahi, pygtk and python-dbus."
- sys.exit(1)
-
-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:], "hd: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:
- usage(2)
-
-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.Reset()
-
-def add_service():
- global server, group, name, stype, domain, host, port, txt
-
- if group is None:
- 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)
-
- assert group.IsEmpty()
-
- print "Adding service '%s' of type '%s' ..." % (name, stype)
-
- group.AddService(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, dbus.UInt32(0), name, stype, domain, host, dbus.UInt16(port), avahi.string_array_to_txt_array(txt))
- group.Commit()
-
-def entry_group_state_changed(state):
- global name, server, n_rename
-
-# print "state change: %i" % state
-
- 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
-
-if not group is None:
- group.Free()