diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-02-18 13:42:38 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-02-18 13:42:38 +0000 |
| commit | c913e78592620d195eea725e13bd6821789a5b76 (patch) | |
| tree | 9f2511a7c2fe09e685960cecc1683a1cc8c74988 /source/QXmppStream.cpp | |
| parent | c12a2d1eca2d73d0842584724629e00dbbc52952 (diff) | |
| download | qxmpp-c913e78592620d195eea725e13bd6821789a5b76.tar.gz | |
move parsing of XMPP messages to QXmppMessage
Diffstat (limited to 'source/QXmppStream.cpp')
| -rw-r--r-- | source/QXmppStream.cpp | 57 |
1 files changed, 4 insertions, 53 deletions
diff --git a/source/QXmppStream.cpp b/source/QXmppStream.cpp index 4c6321dc..960ab352 100644 --- a/source/QXmppStream.cpp +++ b/source/QXmppStream.cpp @@ -403,7 +403,7 @@ void QXmppStream::parser(const QByteArray& data) QXmppIq iqPacket; // to emit QDomElement elemen = nodeRecv.firstChildElement("error"); - QXmppStanza::Error error = parseStanzaError(elemen); + QXmppStanza::Error error = QXmppStanza::parseError(elemen); if( QXmppIbbOpenIq::isIbbOpenIq( nodeRecv ) ) { @@ -670,7 +670,7 @@ void QXmppStream::parser(const QByteArray& data) if(!errorElement.isNull()) { QXmppStanza::Error error = - parseStanzaError(errorElement); + QXmppStanza::parseError(errorElement); presence.setError(error); } @@ -682,29 +682,8 @@ void QXmppStream::parser(const QByteArray& data) } else if(nodeRecv.tagName() == "message") { - QString from = nodeRecv.attribute("from"); - QString to = nodeRecv.attribute("to"); - QString type = nodeRecv.attribute("type"); - QString body = unescapeString( - nodeRecv.firstChildElement("body").text()); - QString sub = unescapeString( - nodeRecv.firstChildElement("subject").text()); - QString thread = nodeRecv.firstChildElement("thread").text(); - QXmppMessage message(from, to, body, thread); - message.setSubject(sub); - message.setTypeFromStr(type); - - QDomElement errorElement = nodeRecv. - firstChildElement("error"); - if(!errorElement.isNull()) - { - QXmppStanza::Error error = parseStanzaError(errorElement); - message.setError(error); - } - - QDomElement xElement = nodeRecv.firstChildElement("x"); - if(!xElement.isNull()) - message.setExtension(QXmppElement(xElement)); + QXmppMessage message; + message.parse(nodeRecv); processMessage(message); } @@ -1037,34 +1016,6 @@ void QXmppStream::processRosterIq(const QXmppRosterIq& rosterIq) } } -QXmppStanza::Error QXmppStream::parseStanzaError(QDomElement & errorElement) -{ - QXmppStanza::Error error; - - if(errorElement.isNull()) - return error; - - QString type = errorElement.attribute("type"); - QString text; - QString cond; - QDomElement element = errorElement.firstChildElement(); - while(!element.isNull()) - { - if(element.tagName() == "text") - text = element.text(); - else if(element.namespaceURI() == ns_stanza) - { - cond = element.tagName(); - } - element = element.nextSiblingElement(); - } - - error.setConditionFromStr(cond); - error.setTypeFromStr(type); - error.setText(text); - return error; -} - QAbstractSocket::SocketError QXmppStream::getSocketError() { return m_socketError; |
