Bug: NetworkManagerDispatcher, device removal events



NetworkManagerDispatcher dispatches dbus signals to more traditional
if-up.d style scripts.  Unfortunately it doesn't work when the device is
removed.  It needs to look up the real interface name e.g. eth0, by
calling a method on the dbus device object but the object has already
been deleted by the time NMDispatcher processes the signal.


I guess the simplest solution is for NMDispatcher to save the interface
name on insertion, but that doesn't seem very elegant.  In particular I
don't think it would work well if it gets killed and restarted.

I know nothing about DBUS - has anyone seen a convention dealing with
the general problem here, where a dbus signal is sent to indicate the
destruction of an object, but clients will need to request information?
E.g. do HAL or its clients do anything like this?

Example output from a plug-unplug cycle to illustrate this specific problem:

root alan-eeepc:~# NetworkManagerDispatcher --no-daemon
** Message: <info> Device /org/freedesktop/NetworkManager/Devices/eth0
(eth0) is now going up.

** Message: <info> Device /org/freedesktop/NetworkManager/Devices/eth0
(eth0) is now up.

** (process:5839): WARNING **: <WARN> nmd_get_device_name():
org.freedesktop.NetworkManager.DeviceNotFound raised: The requested
network device does not exist.

** (process:5839): WARNING **: <WARN> nmd_get_device_name():
org.freedesktop.NetworkManager.DeviceNotFound raised: The requested
network device does not exist.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]