void tst_QXmppIceConnection::testBind() { const int componentId = 1024; QXmppLogger logger; logger.setLoggingType(QXmppLogger::StdoutLogging); QXmppIceConnection client; connect(&client, SIGNAL(logMessage(QXmppLogger::MessageType,QString)), &logger, SLOT(log(QXmppLogger::MessageType,QString))); client.setIceControlling(true); client.addComponent(componentId); QXmppIceComponent *component = client.component(componentId); QVERIFY(component); QCOMPARE(client.gatheringState(), QXmppIceConnection::NewGatheringState); client.bind(QXmppIceComponent::discoverAddresses()); QCOMPARE(client.gatheringState(), QXmppIceConnection::CompleteGatheringState); QCOMPARE(client.localCandidates().size(), component->localCandidates().size()); QVERIFY(!client.localCandidates().isEmpty()); foreach (const QXmppJingleCandidate &c, client.localCandidates()) { QCOMPARE(c.component(), componentId); QCOMPARE(c.type(), QXmppJingleCandidate::HostType); } }
int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // we want one argument : the domain to serve if (argc != 2) { fprintf(stderr, "Usage: xmppServer <domain>\n"); return EXIT_FAILURE; } const QString domain = QString::fromLocal8Bit(argv[1]); QXmppLogger logger; logger.setLoggingType(QXmppLogger::StdoutLogging); passwordChecker checker; QXmppServer server; server.setDomain(domain); server.setLogger(&logger); server.setPasswordChecker(&checker); server.listenForClients(); server.listenForServers(); return a.exec(); }
void Lvk::CA::XmppChatbot::setupLogger() { Cmn::Settings settings; QString logsPath = settings.value(SETTING_LOGS_PATH).toString(); QString logFilename = logsPath + QDir::separator() + "./xmpp.log"; Cmn::Logger::rotateLog(logFilename); QXmppLogger *xmppLogger = new QXmppLogger(this); xmppLogger->setLoggingType(QXmppLogger::FileLogging); xmppLogger->setLogFilePath(logFilename); xmppLogger->setMessageTypes(QXmppLogger::AnyMessage); m_xmppClient->setLogger(xmppLogger); }
void tst_QXmppIceConnection::testConnect() { const int componentId = 1024; QXmppLogger logger; logger.setLoggingType(QXmppLogger::StdoutLogging); QXmppIceConnection clientL; connect(&clientL, SIGNAL(logMessage(QXmppLogger::MessageType,QString)), &logger, SLOT(log(QXmppLogger::MessageType,QString))); clientL.setIceControlling(true); clientL.addComponent(componentId); clientL.bind(QXmppIceComponent::discoverAddresses()); QXmppIceConnection clientR; connect(&clientR, SIGNAL(logMessage(QXmppLogger::MessageType,QString)), &logger, SLOT(log(QXmppLogger::MessageType,QString))); clientR.setIceControlling(false); clientR.addComponent(componentId); clientR.bind(QXmppIceComponent::discoverAddresses()); // exchange credentials clientL.setRemoteUser(clientR.localUser()); clientL.setRemotePassword(clientR.localPassword()); clientR.setRemoteUser(clientL.localUser()); clientR.setRemotePassword(clientL.localPassword()); // exchange candidates foreach (const QXmppJingleCandidate &candidate, clientR.localCandidates()) clientL.addRemoteCandidate(candidate); foreach (const QXmppJingleCandidate &candidate, clientL.localCandidates()) clientR.addRemoteCandidate(candidate); // start ICE QEventLoop loop; connect(&clientL, SIGNAL(connected()), &loop, SLOT(quit())); connect(&clientR, SIGNAL(connected()), &loop, SLOT(quit())); clientL.connectToHost(); clientR.connectToHost(); // check both clients are connected loop.exec(); loop.exec(); QVERIFY(clientL.isConnected()); QVERIFY(clientR.isConnected()); }
void tst_QXmppIceConnection::testBindStun() { const int componentId = 1024; QXmppLogger logger; logger.setLoggingType(QXmppLogger::StdoutLogging); QHostInfo stunInfo = QHostInfo::fromName("stun.l.google.com"); QVERIFY(!stunInfo.addresses().isEmpty()); QXmppIceConnection client; connect(&client, SIGNAL(logMessage(QXmppLogger::MessageType,QString)), &logger, SLOT(log(QXmppLogger::MessageType,QString))); client.setIceControlling(true); client.setStunServer(stunInfo.addresses().first(), 19302); client.addComponent(componentId); QXmppIceComponent *component = client.component(componentId); QVERIFY(component); QCOMPARE(client.gatheringState(), QXmppIceConnection::NewGatheringState); client.bind(QXmppIceComponent::discoverAddresses()); QCOMPARE(client.gatheringState(), QXmppIceConnection::BusyGatheringState); QEventLoop loop; connect(&client, SIGNAL(gatheringStateChanged()), &loop, SLOT(quit())); loop.exec(); bool foundReflexive = false; QCOMPARE(client.gatheringState(), QXmppIceConnection::CompleteGatheringState); QCOMPARE(client.localCandidates().size(), component->localCandidates().size()); QVERIFY(!client.localCandidates().isEmpty()); foreach (const QXmppJingleCandidate &c, client.localCandidates()) { QCOMPARE(c.component(), componentId); if (c.type() == QXmppJingleCandidate::ServerReflexiveType) foundReflexive = true; else QCOMPARE(c.type(), QXmppJingleCandidate::HostType); } QVERIFY(foundReflexive); }
int main(int argc, char *argv[]) { QApplication a(argc, argv); // Set up logging QXmppLogger *logger = QXmppLogger::getLogger(); logger->setLoggingType(QXmppLogger::SignalLogging); LogViewer viewer; QObject::connect(logger, SIGNAL(message(QXmppLogger::MessageType,QString)), &viewer, SLOT(log(QXmppLogger::MessageType,QString))); viewer.show(); // Connect to server QXmppClient client; // client.connectToServer("*****@*****.**", "passwd"); client.connectToServer("*****@*****.**", "qxmpp123"); return a.exec(); }
int main (int argc, char* argv[]) { QCoreApplication::setApplicationName ("egalite"); QCoreApplication::setOrganizationName ("BerndStramm"); QCoreApplication::setOrganizationDomain ("bernd-stramm.com"); deliberate::ProgramVersion pv ("Egalite"); QCoreApplication::setApplicationVersion (pv.Version()); #if EGALITE_GENCERT QCA::Initializer qcaInit; #endif QApplication app (argc,argv); QSettings settings; deliberate::SetSettings (settings); settings.setValue ("program",pv.MyName()); QStringList configMessages; configMessages.append (QObject::tr("Build with Qt %1").arg(QT_VERSION_STR)); configMessages.append (QObject::tr("Running with Qt %1").arg(qVersion())); bool qcaGenerateSupported (false); #if EGALITE_GENCERT QCA::scanForPlugins (); qcaGenerateSupported = QCA::isSupported ("cert"); #endif // We need to ensure that we have certificate handling support if ( qcaGenerateSupported ) { configMessages << "No PKI certificate support on this system" ; } else { configMessages << " Certificate support available "; } #if DO_AUDIO #if DELIBERATE_QT_AUDIO_OK configMessages << QString(" Audio enabled with Qt %1") .arg (DELIBERATE_QT_NUM) ; #else configMessages << QString(" No Audio Input with Qt %1") .arg (DELIBERATE_QT_NUM) ; #endif #else #if DO_MOBI_AUDIO #if DELIBERATE_QT_AUDIO_OK configMessages << QString(" MobilAudio enabled with Qt %1") .arg (DELIBERATE_QT_NUM) ; #else configMessages << QString(" No MobilAudio Input with Qt %1") .arg (DELIBERATE_QT_NUM) ; #endif #else configMessages << QString (" Audio Disabled in Build Configuration"); #endif #endif QString locale = QLocale::system().name(); QTranslator translate; QString xlateFile (QString ("egalite_") + locale); QString langDir (":/translate"); translate.load (xlateFile, langDir); QTextCodec::setCodecForTr (QTextCodec::codecForName ("utf8")); app.installTranslator (&translate); deliberate::CmdOptions opts ("Egalite"); opts.AddSoloOption ("debug","D",QObject::tr("show Debug log window")); opts.AddStringOption ("logdebug","L",QObject::tr("write Debug log to file")); opts.AddStringOption ("lang","l", QObject::tr("language (2-letter lower case)")); opts.AddSoloOption ("phone","P",QObject::tr("use phone user interface")); // deliberate::UseMyOwnMessageHandler (); bool optsOk = opts.Parse (argc, argv); if (!optsOk) { opts.Usage (); exit(1); } if (opts.WantHelp ()) { opts.Usage (); exit (0); } pv.CLIVersion (); for (int cm=0; cm<configMessages.size(); cm++) { deliberate::StdOut () << configMessages[cm] << endl; } if (opts.WantVersion ()) { exit (0); } bool showDebug = opts.SeenOpt ("debug"); deliberate::StartDebugLog (showDebug); bool logDebug = opts.SeenOpt ("logdebug"); if (logDebug) { QString logfile ("/dev/null"); opts.SetStringOpt ("logdebug",logfile); deliberate::StartFileLog (logfile); } QXmppLogger * xlogger = QXmppLogger::getLogger(); if (showDebug || logDebug) { xlogger->setLoggingType (QXmppLogger::FileLogging); } else { xlogger->setLoggingType (QXmppLogger::NoLogging); } if (opts.SeenOpt ("lang")) { QString newlocale (locale); opts.SetStringOpt ("lang",newlocale); if (newlocale != locale) { QString xlateFile (QString ("egalite_") + newlocale); QString langDir (":/translate"); translate.load (xlateFile, langDir); QTextCodec::setCodecForTr (QTextCodec::codecForName ("utf8")); app.installTranslator (&translate); } } /** the real main program starts here */ qDebug () << " plugin library paths " << QCoreApplication::libraryPaths(); egalite::DChatMain chatmain; #if 0 QString defaultFamily = QFont().family (); QString fontFamily ("default"); int pointSize (-1); fontFamily = deliberate::Settings().value("style/normalfont",fontFamily) .toString(); deliberate::Settings().setValue ("style/normalfont",fontFamily); if (fontFamily == "default") { fontFamily = defaultFamily; } pointSize = deliberate::Settings().value ("style/normalpointsize",pointSize) .toInt (); deliberate::Settings().setValue ("style/normalpointsize",pointSize); if (pointSize < 0) { pointSize = QFont().pointSize(); } app.setFont (QFont (fontFamily, pointSize)); #endif bool isPhone = opts.SeenOpt("phone"); if (isPhone) { QFont font = app.font(); font.setPointSize(font.pointSize()+6); app.setFont(font); } qDebug () << " setting point size to " << app.font().pointSize(); chatmain.Init (&app,isPhone); chatmain.setWindowTitle (egalite::Magic::Name); app.setWindowIcon (chatmain.windowIcon()); chatmain.AddConfigMessages (configMessages); chatmain.Run (); int result = app.exec (); qDebug () << " application returns " << result; }