예제 #1
0
파일: client.cpp 프로젝트: tshipa/wilink
void ChatClient::connectToWindowsLive(const QString &accessToken)
{
    QXmppConfiguration config;
    config.setResource(qApp->applicationName());
    config.setWindowsLiveAccessToken(accessToken);
    config.setDomain("messenger.live.com");
    config.setSaslAuthMechanism("X-MESSENGER-OAUTH2");
    config.setStreamSecurityMode(QXmppConfiguration::TLSRequired);
    // NOTE: messenger.live.com uses a certificate with an incorrect name
    config.setIgnoreSslErrors(true);
    QXmppClient::connectToServer(config);
}
예제 #2
0
파일: client.cpp 프로젝트: tshipa/wilink
void ChatClient::connectToFacebook(const QString &appId, const QString &accessToken)
{
    QXmppConfiguration config;
    config.setResource(qApp->applicationName());
    config.setFacebookAppId(appId);
    config.setFacebookAccessToken(accessToken);
    config.setDomain("chat.facebook.com");
    config.setSaslAuthMechanism("X-FACEBOOK-PLATFORM");
    config.setStreamSecurityMode(QXmppConfiguration::TLSRequired);
    config.setIgnoreSslErrors(false);
    QXmppClient::connectToServer(config);
}
예제 #3
0
파일: client.cpp 프로젝트: tshipa/wilink
void ChatClient::connectToGoogle(const QString &jid, const QString &accessToken)
{
    QXmppConfiguration config;
    config.setResource(qApp->applicationName());
    config.setGoogleAccessToken(accessToken);
    config.setJid(jid);
    config.setSaslAuthMechanism("X-OAUTH2");
    config.setStreamSecurityMode(QXmppConfiguration::TLSRequired);
    // don't ignore SSL errors for gmail, but do for other domains (google apps hosted domains)
    if (config.domain() == "gmail.com" || config.domain() == "googlemail.com")
        config.setIgnoreSslErrors(false);
    QXmppClient::connectToServer(config);
}
예제 #4
0
void tst_QXmppServer::testConnect()
{
    QFETCH(QString, username);
    QFETCH(QString, password);
    QFETCH(QString, mechanism);
    QFETCH(bool, connected);

    const QString testDomain("localhost");
    const QHostAddress testHost(QHostAddress::LocalHost);
    const quint16 testPort = 12345;

    QXmppLogger logger;
    //logger.setLoggingType(QXmppLogger::StdoutLogging);

    // prepare server
    TestPasswordChecker passwordChecker;
    passwordChecker.addCredentials("testuser", "testpwd");

    QXmppServer server;
    server.setDomain(testDomain);
    server.setLogger(&logger);
    server.setPasswordChecker(&passwordChecker);
    server.listenForClients(testHost, testPort);

    // prepare client
    QXmppClient client;
    client.setLogger(&logger);

    QEventLoop loop;
    connect(&client, SIGNAL(connected()),
            &loop, SLOT(quit()));
    connect(&client, SIGNAL(disconnected()),
            &loop, SLOT(quit()));

    QXmppConfiguration config;
    config.setDomain(testDomain);
    config.setHost(testHost.toString());
    config.setPort(testPort);
    config.setUser(username);
    config.setPassword(password);
    config.setSaslAuthMechanism(mechanism);
    client.connectToServer(config);
    loop.exec();
    QCOMPARE(client.isConnected(), connected);
}
예제 #5
0
void MyXmppClient::connectToXmppServer() {
    QXmppConfiguration xmppConfig;

    xmppConfig.setJid( m_myjid );
    xmppConfig.setPassword( m_password );
    xmppConfig.setKeepAliveInterval( m_keepAlive );
    xmppConfig.setAutoAcceptSubscriptions(false);
    xmppConfig.setSaslAuthMechanism("DIGEST-MD5");
    xmppConfig.setUseSASLAuthentication(true);
    xmppConfig.setStreamSecurityMode(QXmppConfiguration::TLSEnabled);

    /*******************/

    if( m_resource.isEmpty() || m_resource.isNull() ) xmppConfig.setResource( "Lightbulb" ); else xmppConfig.setResource( m_resource );

    if( !m_host.isEmpty() ) xmppConfig.setHost( m_host );
    if( m_port != 0 ) xmppConfig.setPort( m_port );

    xmppClient->connectToServer( xmppConfig );
}