diff options
author | Tobias Weimer <wishmaster51@googlemail.com> | 2012-08-21 15:23:54 +0000 |
---|---|---|
committer | Tobias Weimer <wishmaster51@googlemail.com> | 2012-08-21 15:23:54 +0000 |
commit | 260cf26dec30e33ae3c7c6a91fccc0b4b43b8ce4 (patch) | |
tree | d2718f2979852832740f5eb1854e6e9b6d5dc7ed /plugins/!NotAdopted/Xfire/xfiretest/invitebuddypacket.cpp | |
parent | 3abc8a4dcba551b8a3a01fcc1b7c311dff5eaf32 (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.cpp | 93 |
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); + } + + +}; |