From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kay Sievers Date: Sun, 11 Apr 2004 01:51:07 +0000 Subject: [PATCH] udev_dbus changes Message-Id: <20040411015107.GA4288@vrfy.org> MIME-Version: 1 Content-Type: multipart/mixed; boundary="CE+1k2dSO48ffgeK" List-Id: To: linux-hotplug@vger.kernel.org --CE+1k2dSO48ffgeK Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Here we change extras/dbus/* to o install the binary in /etc/dev.d o append .dev to the binary o add David's copyright o add the listener script to watch the sent dbus messages o removed the undefined udev_log variable o switch printf() to dbg() thanks, Kay --CE+1k2dSO48ffgeK Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename="02-dbus.patch" diff -Nru a/extras/dbus/Makefile b/extras/dbus/Makefile --- a/extras/dbus/Makefile Sun Apr 11 03:38:42 2004 +++ b/extras/dbus/Makefile Sun Apr 11 03:38:42 2004 @@ -23,7 +23,7 @@ sbindir = ${exec_prefix}/sbin usrbindir = ${exec_prefix}/usr/bin mandir = ${prefix}/usr/share/man -hotplugdir = ${etcdir}/hotplug.d/default +devddir = ${etcdir}/dev.d/default dbusdir = ${etcdir}/dbus-1/system.d configdir = ${etcdir}/udev/ initdir = ${etcdir}/init.d/ @@ -53,9 +53,11 @@ install-dbus-policy: $(INSTALL) -d $(DESTDIR)$(dbusdir) $(INSTALL_DATA) etc/dbus-1/system.d/udev_sysbus_policy.conf $(DESTDIR)$(dbusdir) + $(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(devddir)/$(PROG).dev uninstall-dbus-policy: - rm $(DESTDIR)$(dbusdir)/udev_sysbus_policy.conf + - rm $(DESTDIR)$(devddir)/$(PROG).dev install: install-dbus-policy all diff -Nru a/extras/dbus/dbus-listener.py b/extras/dbus/dbus-listener.py --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/extras/dbus/dbus-listener.py Sun Apr 11 03:38:42 2004 @@ -0,0 +1,25 @@ +#!/usr/bin/python + +import dbus +import gtk + +def udev_signal_received(dbus_iface, member, service, object_path, +message): + [filename, sysfs_path] = message.get_args_list() + if member=='NodeCreated': + print 'Node %s created for %s'%(filename, sysfs_path) + elif member=='NodeDeleted': + print 'Node %s deleted for %s'%(filename, sysfs_path) + +def main(): + bus = dbus.Bus(dbus.Bus.TYPE_SYSTEM) + bus.add_signal_receiver(udev_signal_received, + 'org.kernel.udev.NodeMonitor', # interface + 'org.kernel.udev', # service + '/org/kernel/udev/NodeMonitor') # object + + gtk.mainloop() + +if __name__ == '__main__': + main() + diff -Nru a/extras/dbus/udev_dbus.c b/extras/dbus/udev_dbus.c --- a/extras/dbus/udev_dbus.c Sun Apr 11 03:38:42 2004 +++ b/extras/dbus/udev_dbus.c Sun Apr 11 03:38:42 2004 @@ -1,3 +1,23 @@ +/* + * udev_dbus.c + * + * Copyright (C) 2003 David Zeuthen + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation version 2 of the License. + * + * This program 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 General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + #include #include #include @@ -18,21 +38,18 @@ { va_list args; - if (!udev_log) - return; - va_start(args, format); vsyslog(level, format, args); va_end(args); } #endif -/** variable for the connection the to system message bus or #NULL +/* variable for the connection the to system message bus or NULL * if we cannot connect or acquire the org.kernel.udev service */ static DBusConnection* sysbus_connection; -/** Disconnect from the system message bus */ +/* disconnect from the system message bus */ static void sysbus_disconnect(void) { if (sysbus_connection == NULL) @@ -42,12 +59,12 @@ sysbus_connection = NULL; } -/** Connect to the system message bus */ +/* connect to the system message bus */ static void sysbus_connect(void) { DBusError error; - /* Connect to a well-known bus instance, the system bus */ + /* connect to a well-known bus instance, the system bus */ dbus_error_init(&error); sysbus_connection = dbus_bus_get(DBUS_BUS_SYSTEM, &error); if (sysbus_connection == NULL) { @@ -70,15 +87,15 @@ dbus_bus_acquire_service(sysbus_connection, "org.kernel.udev", 0, &error); if (dbus_error_is_set(&error)) { - printf("cannot acquire org.kernel.udev service, error %s: %s'", - error.name, error.message); + dbg("cannot acquire org.kernel.udev service, error %s: %s'", + error.name, error.message); sysbus_disconnect(); return; } } -/** Send out a signal that a device node is created +/* send out a signal that a device node is created * * @param devname name of the device node, e.g. /dev/sda1 * @param path Sysfs path of device @@ -105,7 +122,7 @@ dbus_connection_flush(sysbus_connection); } -/** Send out a signal that a device node is deleted +/* send out a signal that a device node is deleted * * @param devname Name of the device node, e.g. /udev/sda1 * @param path Sysfs path of device --CE+1k2dSO48ffgeK-- ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel