tree 133e4cbd97eb755a87a6174a052ecf091bc79a10
parent f1d999b55c148b378b44100da56d5c5768ca5a49
author Andrew Jeffery <andrew@codeconstruct.com.au> 1706668589 +1030
committer Andrew Jeffery <andrew@codeconstruct.com.au> 1706751887 +1030

match: Add interfaces{Added,Removed}AtPath()

The signature of the InterfacesAdded and InterfacesRemoved signals is
as follows[1]:

```
org.freedesktop.DBus.ObjectManager.InterfacesAdded (OBJPATH object_path,
                                                    ARRAY of DICT_ENTRY<STRING,ARRAY of DICT_ENTRY<STRING,VARIANT>> interfaces_and_properties);
org.freedesktop.DBus.ObjectManager.InterfacesRemoved (OBJPATH object_path,
                                                      ARRAY<STRING> interfaces);
```

The object path of interest forms the first argument of the signal's
message body, which is distinct the path specified in
the signal's message header. However, the implementation of
sdbusplus::bus::match::rules::interfaces{Added,Removed}() match on the
header's object path. In the case of these signals, the header path is
set to the path of the ObjectManager instance that emitted the signal.
This generally results in a failure to deliver signals expected by the
callers.

Add new functions `interfacesAddedAtPath()` and
`interfacesRemovedAtPath()` that provide matches that are constrained
with `argNpath(0, p)`. These align with the signal signature specified
above. Use of `argNpath()`` allows the caller to specify whether they
wish to match signals from a specific object or a subtree of objects.

Callers of interfacesAdded() providing a path will be migrated on a
case-by-case basis.

[1] https://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces

Change-Id: Ie2f5125d45eb2dfe500d181016ccc968dd856b77
Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
