bool XMPPReachabilityCommand::executeCommand(QStringList * const arguments)
    {
        bool ret = false;
        if (arguments->length() < 2)
        {
            this->client->write(tr("ERROR: xmppReachability <resource> <address>") + "\r\n");
        }
        else
        {
            QXmppClient * const client =
                    XMPPResourceStore::instance()->getFromStore(arguments->first());
            arguments->removeFirst();
            if (client)
            {
                QXmppAddress addr;
                addr.setAddress(arguments->first());
                arguments->removeFirst();

                QXmppReachAddress reachAddr;
                reachAddr.addAddress(addr);

                QXmppPubSubIq publish;
                QXmppPubSubItem item;
                QList <QXmppPubSubItem> listItems;

                publish.setType(QXmppIq::Set);
                publish.setQueryType(QXmppPubSubIq::PublishQuery);
                publish.setId(QUuid::createUuid().toString());
                publish.setQueryNode("urn:xmpp:reach:0");
                item.setId(QUuid::createUuid().toString());
                item.setContents(reachAddr.toQXmppElement());
                listItems.append(item);
                publish.setItems(listItems);
                if (XMPPDebugCommand::isDebugEnabled())
                {
                    XMPPPrintCommand::printMessage(
                                true,
                                &publish);
                }
                ret = client->sendPacket(publish);
                if (not ret)
                {
                    this->client->write(tr("ERROR: Failed to send packet") + "\r\n");
                }
                else
                {
                    XMPPResourceStore::instance()->setLastMessageSent(
                                client,
                                publish);
                }
            }
            else
            {
                this->client->write(tr("ERROR: Unknown resource") + "\r\n");
            }
        }
        return ret;
    }
bool QXmppPubSubManager::requestItems(const QString &jid, const QString &node)
{
    QXmppPubSubIq iq;
    iq.setTo(jid);
    iq.setType(QXmppIq::Get);
    iq.setQueryType(QXmppPubSubIq::ItemsQuery);
    iq.setQueryNode(node);
    return client()->sendPacket(iq);
}
bool QXmppPubSubManager::setItems(const QString &jid, const QString &node, const QList<QXmppPubSubItem> items)
{
    QXmppPubSubIq iq;
    iq.setTo(jid);
    iq.setType(QXmppIq::Set);
    iq.setQueryType(QXmppPubSubIq::PublishQuery);
    iq.setQueryNode(node);
    iq.setItems(items);
    return client()->sendPacket(iq);
}