+
+void SessionThread::addInternalClientToSession(InternalPeer *internalPeer)
+{
+ internalPeer->setParent(0);
+ internalPeer->moveToThread(session()->thread());
+ emit addInternalClient(internalPeer);
+}
+
+
+void SessionThread::run()
+{
+ _session = new CoreSession(user(), _restoreState, _strictIdentEnabled);
+ connect(this, SIGNAL(addRemoteClient(RemotePeer*)), _session, SLOT(addClient(RemotePeer*)));
+ connect(this, SIGNAL(addInternalClient(InternalPeer*)), _session, SLOT(addClient(InternalPeer*)));
+ connect(_session, SIGNAL(sessionState(Protocol::SessionState)), Core::instance(), SIGNAL(sessionState(Protocol::SessionState)));
+ emit initialized();
+ exec();
+ delete _session;
+}