From cb4a46e7fbe62d788e66ed6121c717a2d22a4d7c Mon Sep 17 00:00:00 2001 From: watcherhd Date: Thu, 21 Apr 2011 14:14:52 +0000 Subject: svn.miranda.im is moving to a new home! git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@7 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- icqj_mod/icq_packet.h | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 icqj_mod/icq_packet.h (limited to 'icqj_mod/icq_packet.h') diff --git a/icqj_mod/icq_packet.h b/icqj_mod/icq_packet.h new file mode 100644 index 0000000..b87d251 --- /dev/null +++ b/icqj_mod/icq_packet.h @@ -0,0 +1,113 @@ +// ---------------------------------------------------------------------------80 +// ICQ plugin for Miranda Instant Messenger +// ________________________________________ +// +// Copyright © 2000,2001 Richard Hughes, Roland Rabien, Tristan Van de Vreede +// Copyright © 2001,2002 Jon Keating, Richard Hughes +// Copyright © 2002,2003,2004 Martin Öberg, Sam Kothari, Robert Rainwater +// Copyright © 2004,2005,2006 Joe Kucera, Bio +// +// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// +// ----------------------------------------------------------------------------- +// +// File name : $Source: /cvsroot/miranda/miranda/protocols/IcqOscarJ/icq_packet.h,v $ +// Revision : $Revision: 2991 $ +// Last change on : $Date: 2006-05-30 19:55:48 +0200 (Tue, 30 May 2006) $ +// Last change by : $Author: jokusoftware $ +// +// DESCRIPTION: +// +// Describe me here please... +// +// ----------------------------------------------------------------------------- + +#ifndef __ICQ_PACKET_H +#define __ICQ_PACKET_H + +typedef unsigned char BYTE; +typedef unsigned short WORD; +typedef unsigned long DWORD; + +/*---------* Structures *--------------*/ + +typedef struct icq_packet_s +{ + WORD wPlace; + BYTE nChannel; + WORD wSequence; + WORD wLen; + BYTE *pData; +} icq_packet; + +/*---------* Functions *---------------*/ + +void write_httphdr(icq_packet *d, WORD wType, DWORD dwSeq); +void __fastcall write_flap(icq_packet *, BYTE); +void __fastcall serverPacketInit(icq_packet *, WORD); +void __fastcall directPacketInit(icq_packet *, DWORD); + +void __fastcall serverCookieInit(icq_packet *, BYTE *, WORD); + +void __fastcall packByte(icq_packet *, BYTE); +void __fastcall packWord(icq_packet *, WORD); +void __fastcall packDWord(icq_packet *, DWORD); +void packTLV(icq_packet* pPacket, WORD wType, WORD wLength, BYTE* pbyValue); +void packTLVWord(icq_packet *d, unsigned short nType, WORD wData); +void packTLVDWord(icq_packet *d, unsigned short nType, DWORD dwData); + +void packBuffer(icq_packet* pPacket, const BYTE* pbyBuffer, WORD wLength); +//void packLEWordSizedBuffer(icq_packet* pPacket, const BYTE* pbyBuffer, WORD wLength); +int __fastcall getUINLen(DWORD dwUin); +int __fastcall getUIDLen(DWORD dwUin, char* szUid); +void __fastcall packUIN(icq_packet *pPacket, DWORD dwUin); +void __fastcall packUID(icq_packet *pPacket, DWORD dwUin, char* szUid); +void packFNACHeader(icq_packet *d, WORD wFamily, WORD wSubtype); +void packFNACHeaderFull(icq_packet *d, WORD wFamily, WORD wSubtype, WORD wFlags, DWORD wSeq); + +void __fastcall packLEWord(icq_packet *, WORD); +void __fastcall packLEDWord(icq_packet *, DWORD); + +void packTLVLNTS(PBYTE *buf, int *bufpos, const char *str, WORD wType); + +void ppackByte(PBYTE *buf,int *buflen,BYTE b); +void ppackLEWord(PBYTE *buf,int *buflen,WORD w); +void ppackLEDWord(PBYTE *buf,int *buflen,DWORD d); +void ppackLELNTS(PBYTE *buf, int *buflen, const char *str); +void ppackLELNTSfromDB(PBYTE *buf, int *buflen, const char *szSetting); + +void ppackTLVByte(PBYTE *buf, int *buflen, BYTE b, WORD wType, BYTE always); +void ppackTLVWord(PBYTE *buf, int *buflen, WORD w, WORD wType, BYTE always); +void ppackTLVDWord(PBYTE *buf, int *buflen, DWORD d, WORD wType, BYTE always); +void ppackTLVLNTS(PBYTE *buf, int *buflen, const char *str, WORD wType, BYTE always); +void ppackTLVWordLNTS(PBYTE *buf, int *buflen, WORD w, const char *str, WORD wType, BYTE always); +void ppackTLVLNTSByte(PBYTE *buf, int *buflen, const char *str, BYTE b, WORD wType); + +void ppackTLVLNTSfromDB(PBYTE *buf, int *buflen, const char *szSetting, WORD wType); +void ppackTLVWordLNTSfromDB(PBYTE *buf, int *buflen, WORD w, const char *szSetting, WORD wType); +void ppackTLVLNTSBytefromDB(PBYTE *buf, int *buflen, const char *szSetting, BYTE b, WORD wType); + +void __fastcall unpackByte(unsigned char **, BYTE *); +void __fastcall unpackWord(unsigned char **, WORD *); +void __fastcall unpackDWord(unsigned char **, DWORD *); +void unpackString(unsigned char **buf, char *string, WORD len); +void unpackWideString(unsigned char **buf, WCHAR *string, WORD len); +void unpackTypedTLV(unsigned char **, int, WORD, WORD *, WORD *, char **); +BOOL unpackUID(unsigned char** ppBuf, WORD* pwLen, DWORD *pdwUIN, uid_str* ppszUID); + +void __fastcall unpackLEWord(unsigned char **, WORD *); +void __fastcall unpackLEDWord(unsigned char **, DWORD *); + +#endif /* __ICQ_PACKET_H */ -- cgit v1.2.3