summaryrefslogtreecommitdiff
path: root/plugins/!NotAdopted/Xfire/xfiretest/invitebuddypacket.cpp
diff options
context:
space:
mode:
authorTobias Weimer <wishmaster51@googlemail.com>2012-08-21 15:23:54 +0000
committerTobias Weimer <wishmaster51@googlemail.com>2012-08-21 15:23:54 +0000
commit260cf26dec30e33ae3c7c6a91fccc0b4b43b8ce4 (patch)
treed2718f2979852832740f5eb1854e6e9b6d5dc7ed /plugins/!NotAdopted/Xfire/xfiretest/invitebuddypacket.cpp
parent3abc8a4dcba551b8a3a01fcc1b7c311dff5eaf32 (diff)
latest XFire plugin sources by dufte (thanks)
No adaptions, uploaded as-is git-svn-id: http://svn.miranda-ng.org/main/trunk@1514 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/!NotAdopted/Xfire/xfiretest/invitebuddypacket.cpp')
-rw-r--r--plugins/!NotAdopted/Xfire/xfiretest/invitebuddypacket.cpp93
1 files changed, 93 insertions, 0 deletions
diff --git a/plugins/!NotAdopted/Xfire/xfiretest/invitebuddypacket.cpp b/plugins/!NotAdopted/Xfire/xfiretest/invitebuddypacket.cpp
new file mode 100644
index 0000000000..f9e46cdebf
--- /dev/null
+++ b/plugins/!NotAdopted/Xfire/xfiretest/invitebuddypacket.cpp
@@ -0,0 +1,93 @@
+/*
+ * xfirelib - C++ Library for the xfire protocol.
+ * Copyright (C) 2006 by
+ * Beat Wolf <asraniel@fryx.ch> / http://gfire.sf.net
+ * Herbert Poul <herbert.poul@gmail.com> / http://goim.us
+ * http://xfirelib.sphene.net
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+#include "stdafx.h"
+#include "invitebuddypacket.h"
+#include "variablevalue.h"
+
+namespace xfirelib {
+ using namespace std;
+
+ InviteBuddyPacket::InviteBuddyPacket() {
+ names = new vector<string>;
+ msgs = new vector<string>;
+ }
+ InviteBuddyPacket::~InviteBuddyPacket() {
+ delete names;
+ delete msgs;
+ }
+
+ void InviteBuddyPacket::parseContent(char *buf, int length, int numberOfAtts) {
+ /* Useless.. we only receive Packet 138 for invitations
+ VariableValue val;
+ int index = 0;
+ index += val.readName( buf, index );
+ int namecount = (unsigned char)buf[index++];
+ for(int i = 0 ; i < namecount ; i++) {
+ int namelen = (unsigned char)buf[index++];
+ index++; // ignore 00
+ index += val.readValue( buf, index, namelen );
+ this->msg->push_back(string(val.getValue(),val.getValueLength()));
+ }
+ index += val.readName( buf, index );
+
+ int msgcount = (unsigned char)buf[index++];
+ for(int i = 0 ; i < msgcount ; i++) {
+ int msglen = (unsigned char)buf[index++];
+ index++; // ignore 00
+ index += val.readValue(buf,index,msglen);
+ this->msg->push_back(string(val.getValue(),val.getValueLength()));
+ }
+ */
+ }
+ int InviteBuddyPacket::getPacketContent(char *buf) {
+ int index = 0;
+ VariableValue val;
+ val.setName("name");
+ index += val.writeName(buf,index);
+ buf[index++] = names->size();
+ for(uint i = 0 ; i < names->size() ; i++) {
+ string name = names->at(i);
+ buf[index++] = name.length();
+ buf[index++] = 0;
+ memcpy(buf+index,name.c_str(),name.length());
+ index+=name.length();
+ }
+ val.setName("msg");
+ index += val.writeName(buf,index);
+ buf[index++] = msgs->size();
+ for(uint i = 0 ; i < msgs->size() ; i++) {
+ string msg = msgs->at(i);
+ buf[index++] = msg.length();
+ buf[index++] = 0;
+ memcpy(buf+index,msg.c_str(),msg.length());
+ index+=msg.length();
+ }
+ return index;
+ }
+
+ void InviteBuddyPacket::addInviteName(string name, string msg) {
+ this->names->push_back(name);
+ this->msgs->push_back(msg);
+ }
+
+
+};