void Channel1MessageData::init(const QByteArray &message, Channel1Codec charset) { DataUnit msgData; msgData.append<quint16>(charset); msgData.append<quint16>(0); msgData.append(message); appendTLV(0x0501, (quint32) 0x0106); appendTLV(0x0101, msgData.data()); }
ServerMessage::ServerMessage(IcqContact *contact, const Channel1MessageData &data, const Cookie &cookie, bool storeMessage) : SNAC(MessageFamily, MessageSrvSend) { init(contact, 1, cookie); appendTLV(0x0002, data.data()); if (storeMessage) { // empty TLV(6) store message if recipient offline. appendTLV(0x0006); } }
Channel2MessageData::Channel2MessageData(quint16 ackType, const Tlv2711 &data) : Channel2BasicMessageData(0, ICQ_CAPABILITY_SRVxRELAY, data.cookie()) { appendTLV(0x000A, ackType); /*if (includeDcInfo) { data.appendTLV(0x03, my_ip); data.appendTLV(0x05, my_port); }*/ appendTLV(0x000F); appendTLV(0x2711, data.data()); }
XtrazRequestPacket::XtrazRequestPacket(IcqContact *contact, const QString &query, const QString ¬ify) { QString body; { QXmlStreamWriter xml(&body); xml.writeStartElement("N"); xml.writeStartElement("QUERY"); xml.writeCharacters(query); xml.writeEndElement(); xml.writeStartElement("NOTIFY"); xml.writeCharacters(notify); xml.writeEndElement(); xml.writeEndElement(); } XtrazData data(body); Cookie cookie = data.cookie(); cookie.setContact(contact); setCookie(cookie); init(contact, 2, cookie); appendTLV(0x05, Channel2MessageData(1, data).data()); appendTLV(0x03); }
ServerMessage::ServerMessage(IcqContact *contact, const Channel2BasicMessageData &data) : SNAC(MessageFamily, MessageSrvSend) { init(contact, 2, data.cookie()); appendTLV(0x05, data.data()); }