bool RegisterStream::start(const QDomElement &AElem) { if (AElem.tagName()=="register") { if (!xmppStream()->isEncryptionRequired() || xmppStream()->connection()->isEncrypted()) { Stanza request("iq"); request.setType("get").setId("getReg"); request.addElement("query",NS_JABBER_REGISTER); FXmppStream->insertXmppStanzaHandler(XSHO_XMPP_FEATURE,this); FXmppStream->sendStanza(request); REPORT_EVENT(SEVP_REGISTRATION_STREAM_BEGIN,1); LOG_STRM_INFO(FXmppStream->streamJid(),"Account registration fields request sent"); return true; } else { XmppError err(IERR_XMPPSTREAM_NOT_SECURE); LOG_STRM_WARNING(FXmppStream->streamJid(),QString("Failed to register new account on server: %1").arg(err.condition())); emit error(err); } } deleteLater(); return false; }
bool SASLAuthFeature::start(const QDomElement &AElem) { if (AElem.tagName() == "mechanisms") { if (!xmppStream()->isEncryptionRequired() || xmppStream()->connection()->isEncrypted()) { QStringList mechanisms; QDomElement mechElem = AElem.firstChildElement("mechanism"); while (!mechElem.isNull()) { QString mech = mechElem.text().toUpper(); if (SupportedMechanisms.contains(mech)) mechanisms.append(mech); mechElem = mechElem.nextSiblingElement("mechanism"); } if (!mechanisms.isEmpty()) { if (!FXmppStream->requestPassword()) sendAuthRequest(mechanisms); else FMechanisms = mechanisms; return true; } else { LOG_STRM_WARNING(FXmppStream->streamJid(),QString("Failed to send authorization request: Supported mechanism not found")); } } else { XmppError err(IERR_XMPPSTREAM_NOT_SECURE); LOG_STRM_WARNING(FXmppStream->streamJid(),QString("Failed to send authorization request: %1").arg(err.condition())); emit error(err); } } else { LOG_STRM_ERROR(FXmppStream->streamJid(),QString("Failed to send authorization request: Invalid element=%1").arg(AElem.tagName())); } deleteLater(); return false; }
bool IqAuthFeature::start(const QDomElement &AElem) { if (AElem.tagName() == "auth") { if (!xmppStream()->isEncryptionRequired() || xmppStream()->connection()->isEncrypted()) { if (!FXmppStream->requestPassword()) sendAuthRequest(); else FPasswordRequested = true; return true; } else { XmppError err(IERR_XMPPSTREAM_NOT_SECURE); LOG_STRM_WARNING(FXmppStream->streamJid(),QString("Failed to send authentication request: %1").arg(err.condition())); emit error(err); } } deleteLater(); return false; }