I've verified that the NM bearer plugin's qnetworkmanagerengine class is receiving the 'AccessPointRemoved', is matching them correctly in it's saved list, and is called delete on the QNetworkManagerInterfaceAccessPoint instance. The associated destructor is called, and my new disconnect() method is called, which succeeds.
All that aside, the rules are still piling up, so something else is wrong. I took a quick look at the DBusConnection code, and it looks like the signal matches are reference counted, so it's possible that the count is never reaching zero, so the rule isn't actually released... ( see qdbusconnection.cpp and qdbusintegrator.cpp ).
Just a quick update on my debugging.
I've verified that the NM bearer plugin's qnetworkmanager engine class is receiving the 'AccessPointRem oved', is matching them correctly in it's saved list, and is called delete on the QNetworkManager InterfaceAccess Point instance. The associated destructor is called, and my new disconnect() method is called, which succeeds.
All that aside, the rules are still piling up, so something else is wrong. I took a quick look at the DBusConnection code, and it looks like the signal matches are reference counted, so it's possible that the count is never reaching zero, so the rule isn't actually released... ( see qdbusconnection.cpp and qdbusintegrator.cpp ).