In the dbus_connect() code path, return the subscription token.
In the Modem class, use this token to disconnect signal callbacks when an
interface is removed.
Generalize the signal connect/disconnect handling: have one tuple defining all
signals and their handler functions, add generalized loop to attach them. Store
all subscription tokens in a dict of lists, any number of signal callbacks per
general interface name. When an interface is announced to be removed from
ofono, detach all signals for that interface implicitly.
So far this only handles the MessageManager interface's IncomingMessage signal,
but others will likely follow soon.
Fixes: OS#2242
Change-Id: I0939ef414bc599ee8742df48da04d8d9569d00ba
Collect incoming signals in a defer queue and handle them once the DBus polling
is through.
Related: OS#2220
Change-Id: Ic7520f2165888a4ee0f83b779cd58d20c4e45fa0
Allow tokens to be passed for SMS composition, and use that to pass MO and MT
modem names into the SMS text for easier debugging.
Change-Id: I5e0d066ffa7a4631e8568c6cd4f210627f209122
For some reason the code there catches exceptions happening while interfaces
are being established. That's not a good idea, drop it.
Related: OS#2220
Change-Id: Ida7731ed6ff3cad44ff437137abe2d6a424fcaa4
The nested wait was definitely a bad idea. This here is certainly not very
nice either, but an attempt to catch cases where a dbus interface cannot
be used yet despite being signalled by ofono (sporadically happens).
Change-Id: I2ac7eb0f5174250f4b97e2bf758666410d8cb854
So far for bool only because we don't have a non-bool setting yet. Should
be extended once we have.
Keep the probably unneeded 'poll()' to not mix changes too much.