# # Machekku Updated Delayed Delivery # # Version: 0.1.1 # Date: 2007-02-09 # # types.cpp | 17 ++++++++++++----- # xmpp_tasks.cpp | 6 ++++++ # 2 files changed, 18 insertions(+), 5 deletions(-) # diff -rN -u old-psit-1/iris/xmpp-im/types.cpp new-psit-1/iris/xmpp-im/types.cpp --- old-psit-1/iris/xmpp-im/types.cpp 2007-02-09 02:57:58.000000000 +0100 +++ new-psit-1/iris/xmpp-im/types.cpp 2007-02-09 02:58:03.468750000 +0100 @@ -1481,7 +1481,11 @@ // timestamp if(d->timeStampSend && !d->timeStamp.isNull()) { QDomElement e = s.createElement("jabber:x:delay", "x"); - e.setAttribute("stamp", TS2stamp(d->timeStamp)); + e.setAttribute("stamp", TS2stamp(d->timeStamp.toUTC())); + s.appendChild(e); + + e = s.createElement("http://www.xmpp.org/extensions/xep-0203.html#ns", "x"); + e.setAttribute("stamp", d->timeStamp.toUTC().toString(Qt::ISODate) + "Z"); s.appendChild(e); } @@ -1694,10 +1698,13 @@ } // timestamp - QDomElement t = root.elementsByTagNameNS("jabber:x:delay", "x").item(0).toElement(); - if(!t.isNull()) { - d->timeStamp = stamp2TS(t.attribute("stamp")); - d->timeStamp = d->timeStamp.addSecs(timeZoneOffset * 60); + QDomElement t = root.elementsByTagNameNS("http://www.xmpp.org/extensions/xep-0203.html#ns", "x").item(0).toElement(); + if (!t.isNull()) { + d->timeStamp = QDateTime::fromString(t.attribute("stamp").left(19), Qt::ISODate).addSecs(timeZoneOffset * 60); + d->spooled = true; + } + else if (t = root.elementsByTagNameNS("jabber:x:delay", "x").item(0).toElement(), !t.isNull()) { + d->timeStamp = stamp2TS(t.attribute("stamp")).addSecs(timeZoneOffset * 60); d->spooled = true; } else { diff -rN -u old-psit-1/iris/xmpp-im/xmpp_tasks.cpp new-psit-1/iris/xmpp-im/xmpp_tasks.cpp --- old-psit-1/iris/xmpp-im/xmpp_tasks.cpp 2007-02-09 02:57:58.000000000 +0100 +++ new-psit-1/iris/xmpp-im/xmpp_tasks.cpp 2007-02-09 02:58:03.515625000 +0100 @@ -704,6 +704,12 @@ p.setTimeStamp(dt); } } + else if(i.tagName() == "x" && i.attribute("xmlns") == "http://www.xmpp.org/extensions/xep-0203.html#ns") { + if(i.hasAttribute("stamp")) { + QDateTime dt = QDateTime::fromString(i.attribute("stamp").left(19), Qt::ISODate).addSecs(client()->timeZoneOffset() * 60); + p.setTimeStamp(dt); + } + } else if(i.tagName() == "x" && i.attribute("xmlns") == "gabber:x:music:info") { QDomElement t; bool found;