core: backend autoconnection:

A new Connection/autoconnect_backend param can be set for a profile or component to be
started automatically with backend. This is specially useful for components, but can be
useful for client profile too (e.g. on Android we need to start profile with backend to
get notifications, this part will come with following commits).

The new Sqlite.getIndParamValues method allows to retrieve the same parameters for all
profiles.
This commit is contained in:
Goffi 2020-01-25 21:08:32 +01:00
commit 1d91db6f2c
2 changed files with 81 additions and 29 deletions

View file

@ -20,7 +20,6 @@
from sat.core.i18n import _, D_
from sat.core.log import getLogger
log = getLogger(__name__)
from sat.core import exceptions
from sat.tools import xml_tools
from sat.memory.memory import Sessions
@ -32,6 +31,10 @@ from twisted.python.failure import Failure
from twisted.words.protocols.jabber import jid
from sat.tools.common import email as sat_email
log = getLogger(__name__)
#  FIXME: this plugin code is old and need a cleaning
# TODO: account deletion/password change need testing
@ -742,7 +745,8 @@ class MiscAccount(object):
d.addCallback(
lambda __: self.host.memory.getProfileName(jid_s)
) # checks if the profile has been successfuly created
d.addCallback(self.host.connect, password, {}, 0)
d.addCallback(lambda profile: defer.ensureDeferred(
self.host.connect(profile, password, {}, 0)))
def connected(result):
self.sendEmails(None, profile=jid_s)

View file

@ -281,7 +281,7 @@ class InvitationsPlugin(object):
except KeyError:
pass
else:
yield self.host.connect(guest_profile, password)
yield defer.ensureDeferred(self.host.connect(guest_profile, password))
guest_client = self.host.getClient(guest_profile)
yield id_plugin.setIdentity(guest_client, {'nick': name})
yield self.host.disconnect(guest_profile)