provide a way to tell the AM to reload connection managers
Submitted by Simon McVittie
Assigned to Telepathy bugs list
Description
A bug in MC:
- have an MSN account, but don't have butterfly installed
- MC starts, sees the MSN account and flags it as invalid, because the CM is missing
- butterfly is reinstalled
At this point, MC doesn't know that the CM has been installed, so the MSN account remains invalid.
We should either mandate that MC uses inotify() (or something) to pick up new CMs, or provide API by which package managers (e.g. dpkg postinst scripts, RPM %post snippets) can tell MC to re-list CMs.
Alberto has proposed the following API in MC:
o.f.T.AM.I.Reloadable.DRAFT The Reloadable interface provides a way to reload accounts.
method Reload ()
Request the reloading of all accounts. The AccountManager SHOULD
attempt the reloading of all accounts and emit AccountValidityChanged
for all those accounts whose validity has changed as a result of the
reloading.
which is vague enough to be used for any other reload-like operations that we're interested in in future (reloading .client files, reloading the file that contains accounts, etc.).
This method isn't ideal (ideally MC could auto-detect all interesting events), but it's harmless - a minimal implementation would be to do nothing - so I don't oppose its addition. The fact that dbus-daemon is meant to inotify for new services, but seems to be unreliable at doing so, indicates that the ideal of auto-detecting new things might not be feasible.
My inclination would be that if we accept this method, we should put it on the core AccountManager interface when it's undrafted, rather than keeping a separate interface.