dbusjs / node-dbus-next

🚌 The next great dbus library for node
https://www.npmjs.com/package/dbus-next
155 stars 52 forks source link

Don't loose signals when no previous method calls have been made. #87

Closed sdrik closed 2 years ago

sdrik commented 2 years ago

ProxyInterface's listener is dropping signals if the sender does not match an already known name owner for the proxied object.

This can occur when no previous method call have been sent to this object, which is always the case for a newly XML-constructed proxy object. Moreover, if the object doesn't expose any method, it is simply impossible to get any signal from it !

In the introspection case, the initial org.freedesktop.Introspectable.Introspect call will always make the name owner initially known to the bus connection.

To prevent this, we're getting the name owner during the XML based proxy construction by querying the org.freedesktop.DBus.GetNameOwner method.

Fixes #86

acrisci commented 2 years ago

:+1: