From 08fd5437555d0b5cab972fb3316b4cdb8f11cdae Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Fri, 12 Oct 2012 11:45:28 +0000 Subject: AimOscar: folders restructurization git-svn-id: http://svn.miranda-ng.org/main/trunk@1886 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/AimOscar/src/snac.cpp | 65 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 protocols/AimOscar/src/snac.cpp (limited to 'protocols/AimOscar/src/snac.cpp') diff --git a/protocols/AimOscar/src/snac.cpp b/protocols/AimOscar/src/snac.cpp new file mode 100644 index 0000000000..ed8af265fe --- /dev/null +++ b/protocols/AimOscar/src/snac.cpp @@ -0,0 +1,65 @@ +/* +Plugin of Miranda IM for communicating with users of the AIM protocol. +Copyright (c) 2008-2009 Boris Krasnovskiy +Copyright (C) 2005-2006 Aaron Myles Landwehr + +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, see . +*/ +#include "aim.h" +#include "snac.h" +#include "packets.h" + +SNAC::SNAC(char* buf,unsigned short length) +{ + service_=_htons((*(unsigned short*)&buf[0])); + subgroup_=_htons((*(unsigned short*)&buf[2])); + flags_=_htons((*(unsigned short*)&buf[4])); + idh_=_htons((*(unsigned short*)&buf[6])); + id_=_htons((*(unsigned short*)&buf[8])); + value_=&buf[SNAC_SIZE]; + length_=length; +} +int SNAC::cmp(unsigned short service) +{ + if(service_==service) + return 1; + else + return 0; +} +int SNAC::subcmp(unsigned short subgroup) +{ + if(subgroup_==subgroup) + return 1; + else + return 0; +} +unsigned short SNAC::ushort(int pos) +{ + return _htons(*(unsigned short*)&value_[pos]); +} +unsigned long SNAC::ulong(int pos) +{ + return _htonl(*(unsigned long*)&value_[pos]); +} +unsigned char SNAC::ubyte(int pos) +{ + return value_[pos]; +} +char* SNAC::part(int pos, int length) +{ + char* value = (char*)mir_alloc(length+1); + memcpy(value, &value_[pos], length); + value[length] = '\0'; + return value; +} -- cgit v1.2.3