/*==LICENSE==* CyanWorlds.com Engine - MMOG client, server and tools Copyright (C) 2011 Cyan Worlds, Inc. 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 3 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 . You can contact Cyan Worlds, Inc. by email legal@cyan.com or by snail mail at: Cyan Worlds, Inc. 14617 N Newport Hwy Mead, WA 99021 *==LICENSE==*/ /***************************************************************************** * * $/Plasma20/Sources/Plasma/NucleusLib/pnNetCli/Intern.h * ***/ #ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETCLI_INTERN_H #error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetCli/Intern.h included more than once" #endif #define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETCLI_INTERN_H namespace pnNetCli { /***************************************************************************** * * Channel * ***/ struct NetMsgChannel; NetMsgChannel * NetMsgChannelLock ( unsigned protocol, bool server, unsigned * largestRecv ); void NetMsgChannelUnlock ( NetMsgChannel * channel ); const NetMsgInitRecv * NetMsgChannelFindRecvMessage ( NetMsgChannel * channel, unsigned messageId ); const NetMsgInitSend * NetMsgChannelFindSendMessage ( NetMsgChannel * channel, unsigned messageId ); void NetMsgChannelGetDhConstants ( const NetMsgChannel * channel, unsigned * dh_g, const BigNum ** dh_xa, // client: dh_x server: dh_a const BigNum ** dh_n ); /***************************************************************************** * * Encrypt * ***/ void NetMsgCryptClientStart ( NetMsgChannel * channel, unsigned seedBytes, const byte seedData[], BigNum * clientSeed, BigNum * serverSeed ); void NetMsgCryptServerConnect ( NetMsgChannel * channel, unsigned seedBytes, const byte seedData[], BigNum * clientSeed ); /***************************************************************************** * * Utils * ***/ class CInputAccumulator { ARRAY(byte) buffer; byte * curr; public: CInputAccumulator (); void Add (unsigned count, const byte * data); bool Get (unsigned count, void * dest); // returns false if request cannot be fulfilled bool Eof () const; void Clear (); void Compact (); }; } using namespace pnNetCli;