void MorseConnection::doConnect(Tp::DBusError *error) { Q_UNUSED(error); CAppInformation appInfo; appInfo.setAppId(14617); appInfo.setAppHash(QLatin1String("e17ac360fd072f83d5d08db45ce9a121")); appInfo.setAppVersion(QLatin1String("0.1")); appInfo.setDeviceInfo(QLatin1String("pc")); appInfo.setOsInfo(QLatin1String("GNU/Linux")); appInfo.setLanguageCode(QLatin1String("en")); m_authReconnectionsCount = 0; m_core = new CTelegramCore(0); m_core->setPingInterval(m_keepaliveInterval * 1000); m_core->setAppInformation(&appInfo); m_core->setMessageReceivingFilterFlags(TelegramNamespace::MessageFlagOut|TelegramNamespace::MessageFlagRead); m_core->setAcceptableMessageTypes(TelegramNamespace::MessageTypeText); setStatus(Tp::ConnectionStatusConnecting, Tp::ConnectionStatusReasonNoneSpecified); connect(m_core, SIGNAL(connectionStateChanged(TelegramNamespace::ConnectionState)), this, SLOT(whenConnectionStateChanged(TelegramNamespace::ConnectionState))); connect(m_core, SIGNAL(authorizationErrorReceived()), this, SLOT(whenAuthErrorReceived())); connect(m_core, SIGNAL(phoneCodeRequired()), this, SLOT(whenPhoneCodeRequired())); connect(m_core, SIGNAL(authSignErrorReceived(TelegramNamespace::AuthSignError,QString)), this, SLOT(whenAuthSignErrorReceived(TelegramNamespace::AuthSignError,QString))); connect(m_core, SIGNAL(avatarReceived(QString,QByteArray,QString,QString)), this, SLOT(whenAvatarReceived(QString,QByteArray,QString,QString))); connect(m_core, SIGNAL(contactListChanged()), this, SLOT(whenContactListChanged())); connect(m_core, SIGNAL(messageReceived(QString,QString,TelegramNamespace::MessageType,quint32,quint32,quint32)), this, SLOT(whenMessageReceived(QString,QString,TelegramNamespace::MessageType,quint32,quint32,quint32))); connect(m_core, SIGNAL(chatMessageReceived(quint32,QString,QString,TelegramNamespace::MessageType,quint32,quint32,quint32)), this, SLOT(whenChatMessageReceived(quint32,QString,QString,TelegramNamespace::MessageType,quint32,quint32,quint32))); connect(m_core, SIGNAL(chatChanged(quint32)), this, SLOT(whenChatChanged(quint32))); connect(m_core, SIGNAL(contactStatusChanged(QString,TelegramNamespace::ContactStatus)), this, SLOT(updateContactPresence(QString))); const QByteArray sessionData = getSessionData(m_selfPhone); if (sessionData.isEmpty()) { qDebug() << "init connection..."; m_core->initConnection(QLatin1String("149.154.175.50"), 443); } else { qDebug() << "restore connection..."; m_core->restoreConnection(sessionData); } }
bool isSameSession( std::pair<SSL_SESSION*, size_t> lhs, std::pair<SSL_SESSION*, size_t> rhs) { return getSessionData(lhs.first, lhs.second) == getSessionData(rhs.first, rhs.second); }