summaryrefslogtreecommitdiff
path: root/protocols/AimOscar/packets.h
diff options
context:
space:
mode:
authorVadim Dashevskiy <watcherhd@gmail.com>2012-05-15 10:38:20 +0000
committerVadim Dashevskiy <watcherhd@gmail.com>2012-05-15 10:38:20 +0000
commit48540940b6c28bb4378abfeb500ec45a625b37b6 (patch)
tree2ef294c0763e802f91d868bdef4229b6868527de /protocols/AimOscar/packets.h
parent5c350913f011e119127baeb32a6aedeb4f0d33bc (diff)
initial commit
git-svn-id: http://svn.miranda-ng.org/main/trunk@2 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/AimOscar/packets.h')
-rw-r--r--protocols/AimOscar/packets.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/protocols/AimOscar/packets.h b/protocols/AimOscar/packets.h
new file mode 100644
index 0000000000..e7c4de6cf0
--- /dev/null
+++ b/protocols/AimOscar/packets.h
@@ -0,0 +1,66 @@
+/*
+Plugin of Miranda IM for communicating with users of the AIM protocol.
+Copyright (c) 2008-2010 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 <http://www.gnu.org/licenses/>.
+*/
+#ifndef PACKETS_H
+#define PACKETS_H
+
+struct flap_header
+{
+ unsigned char ast;
+ unsigned char type;
+ unsigned short seqno;
+ unsigned short len;
+};
+struct snac_header
+{
+ unsigned short service;
+ unsigned short subgroup;
+ unsigned short flags;
+ unsigned short request_id[2];
+};
+
+inline unsigned short _htons(unsigned short s)
+{
+ return s>>8|s<<8;
+}
+
+inline unsigned long _htonl(unsigned long s)
+{
+ return s<<24|(s&0xff00)<<8|((s>>8)&0xff00)|s>>24;
+}
+
+inline unsigned __int64 _htonl64(unsigned __int64 s)
+{
+ return (unsigned __int64)_htonl(s & 0xffffffff) << 32 | _htonl(s >> 32);
+}
+
+
+int aim_writesnac(unsigned short service, unsigned short subgroup,unsigned short &offset,char* out, unsigned short id=0);
+int aim_writetlv(unsigned short type,unsigned short size, const char* value,unsigned short &offset,char* out);
+int aim_writetlvchar(unsigned short type, unsigned char value, unsigned short &offset, char* out);
+int aim_writetlvshort(unsigned short type, unsigned short value, unsigned short &offset, char* out);
+int aim_writetlvlong(unsigned short type, unsigned long value, unsigned short &offset, char* out);
+int aim_writetlvlong64(unsigned short type, unsigned __int64 value, unsigned short &offset, char* out);
+void aim_writefamily(const char *buf,unsigned short &offset,char* out);
+void aim_writegeneric(unsigned short size,const char *buf,unsigned short &offset,char* out);
+void aim_writebartid(unsigned short type, unsigned char flags, unsigned short size,const char *buf,unsigned short &offset,char* out);
+void aim_writechar(unsigned char val, unsigned short &offset,char* out);
+void aim_writeshort(unsigned short val, unsigned short &offset,char* out);
+void aim_writelong(unsigned long val, unsigned short &offset,char* out);
+
+#endif