|
Mixe for Privacy and Anonymity in the Internet
|
The base of each control channel. More...
#include <CAAbstractControlChannel.hpp>
Public Member Functions | |
| CAAbstractControlChannel (UINT8 id, bool bIsEncrypted) | |
| virtual | ~CAAbstractControlChannel () |
| SINT32 | sendXMLMessage (const XERCES_CPP_NAMESPACE::DOMDocument *pDocMsg) const |
| Call to send a XML message via this control channel. | |
| SINT32 | sendXMLMessage (const UINT8 *msgXML, UINT32 msgLen) const |
| Call to send a XML message via this control channel. | |
| UINT32 | getID () const |
| Returns the id of this control channel. | |
Protected Member Functions | |
| virtual SINT32 | proccessMessage (const UINT8 *msg, UINT32 msglen)=0 |
| Processes some bytes of a message we got from the communication channel. | |
| virtual SINT32 | proccessMessageComplete ()=0 |
| Called if a whole messages was received, which should be delivered to the final recipient. | |
| SINT32 | setDispatcher (CAControlChannelDispatcher *pDispatcher) |
| Sets the Dispatcher. | |
Protected Attributes | |
| CAControlChannelDispatcher * | m_pDispatcher |
| bool | m_bIsEncrypted |
| UINT32 | m_ID |
Friends | |
| class | CAControlChannelDispatcher |
The base of each control channel.
Controls channels should be derived from CASyncControlChannel or CAASyncControlChannel
Definition at line 41 of file CAAbstractControlChannel.hpp.
| CAAbstractControlChannel::CAAbstractControlChannel | ( | UINT8 | id, |
| bool | bIsEncrypted | ||
| ) | [inline] |
Definition at line 44 of file CAAbstractControlChannel.hpp.
References m_bIsEncrypted, m_ID, and m_pDispatcher.
{
m_bIsEncrypted=bIsEncrypted;
m_ID=id;
m_pDispatcher=NULL;
}
| virtual CAAbstractControlChannel::~CAAbstractControlChannel | ( | ) | [inline, virtual] |
Definition at line 51 of file CAAbstractControlChannel.hpp.
{
}
| UINT32 CAAbstractControlChannel::getID | ( | ) | const [inline] |
Returns the id of this control channel.
| id | of control channel |
Definition at line 112 of file CAAbstractControlChannel.hpp.
References m_ID.
Referenced by CAControlChannelDispatcher::registerControlChannel(), and CAReplayCtrlChannelMsgProc::~CAReplayCtrlChannelMsgProc().
{
return m_ID;
}
| virtual SINT32 CAAbstractControlChannel::proccessMessage | ( | const UINT8 * | msg, |
| UINT32 | msglen | ||
| ) | [protected, pure virtual] |
Processes some bytes of a message we got from the communication channel.
We reassemble this fragments in a buffer. If all parts are received we call proccessMessagesComplete()
Implemented in CASyncControlChannel.
Referenced by CAControlChannelDispatcher::proccessMixPacket().
| virtual SINT32 CAAbstractControlChannel::proccessMessageComplete | ( | ) | [protected, pure virtual] |
Called if a whole messages was received, which should be delivered to the final recipient.
Implemented in CASyncControlChannel.
| SINT32 CAAbstractControlChannel::sendXMLMessage | ( | const XERCES_CPP_NAMESPACE::DOMDocument * | pDocMsg | ) | const [inline] |
Call to send a XML message via this control channel.
Note that this message can not be bigger than 64 KBytes.
| docMsg | XML document to sent over this control channel |
| E_SPACE,if | the serialized XML message is bigger than 0xFFFF bytes |
| E_SUCCESS,if | the message that successful send |
| E_UNKNOWN,in | case of an error |
Definition at line 62 of file CAAbstractControlChannel.hpp.
References DOM_Output::dumpToMem(), E_SPACE, and E_SUCCESS.
Referenced by CAAccountingInstance::finishLoginProcess(), CAFirstMixChannelList::forceKickout(), CAAccountingInstance::handleAccountCertificate_internal(), CAAccountingInstance::handleChallengeResponse_internal(), CAAccountingInstance::handleCostConfirmation_internal(), CAAccountingInstance::handleJapPacket_internal(), CAReplayCtrlChannelMsgProc::proccessGetTimestamp(), CAReplayCtrlChannelMsgProc::proccessGotTimestamp(), CAAccountingInstance::processJapMessageLoginHelper(), CAReplayCtrlChannelMsgProc::propagateCurrentReplayTimestamp(), CAAccountingInstance::returnPrepareKickout(), CAAccountingInstance::sendAILoginConfirmation(), CAAccountingInstance::sendCCRequest(), CAReplayCtrlChannelMsgProc::sendGetTimestamp(), and CAAccountingInstance::sendInitialCCRequest().
{
UINT32 tlen=0xFFFF;
UINT8* tmpB=new UINT8[tlen];
if(DOM_Output::dumpToMem(pDocMsg,tmpB,&tlen)!=E_SUCCESS || tlen>0xFFFF)
{
delete[]tmpB;
return E_SPACE;
}
SINT32 ret=sendXMLMessage(tmpB,tlen);
delete[] tmpB;
return ret;
}
| SINT32 CAAbstractControlChannel::sendXMLMessage | ( | const UINT8 * | msgXML, |
| UINT32 | msgLen | ||
| ) | const [inline] |
Call to send a XML message via this control channel.
| msgXML | buffer which holds the serialized XML message |
| msgLen | size of msgXML |
| E_SPACE,if | the serialized XML message is bigger than 0xFFFF bytes |
| E_SUCCESS,if | the message that successful send |
| E_UNKNOWN,in | case of an error |
Definition at line 84 of file CAAbstractControlChannel.hpp.
References E_SPACE, CAControlChannelDispatcher::encryptMessage(), m_bIsEncrypted, m_ID, m_pDispatcher, and CAControlChannelDispatcher::sendMessages().
{
//CAMsg::printMsg(LOG_DEBUG,"Will send xml msg over control channel\n");
if(msgLen>0xFFFF)
{
return E_SPACE;
}
UINT32 tmpBLen=msgLen+2+16; //2for msg len and 16 for auth tag
UINT8* tmpB=new UINT8[tmpBLen];
if(m_bIsEncrypted)
{
m_pDispatcher->encryptMessage(msgXML,msgLen,tmpB+2,&tmpBLen);
}
else
{
memcpy(tmpB+2,msgXML,msgLen);
tmpBLen=msgLen;
}
tmpB[0]=(UINT8)(msgLen>>8);
tmpB[1]=(UINT8)(msgLen&0xFF);
SINT32 ret=m_pDispatcher->sendMessages(m_ID,tmpB,tmpBLen+2);
delete[] tmpB;
return ret;
}
| SINT32 CAAbstractControlChannel::setDispatcher | ( | CAControlChannelDispatcher * | pDispatcher | ) | [inline, protected] |
Sets the Dispatcher.
Definition at line 130 of file CAAbstractControlChannel.hpp.
References E_SUCCESS, and m_pDispatcher.
Referenced by CAControlChannelDispatcher::registerControlChannel().
{
m_pDispatcher=pDispatcher;
return E_SUCCESS;
}
friend class CAControlChannelDispatcher [friend] |
Definition at line 136 of file CAAbstractControlChannel.hpp.
bool CAAbstractControlChannel::m_bIsEncrypted [protected] |
Definition at line 138 of file CAAbstractControlChannel.hpp.
Referenced by CAAbstractControlChannel(), CASyncControlChannel::proccessMessage(), and sendXMLMessage().
UINT32 CAAbstractControlChannel::m_ID [protected] |
Definition at line 139 of file CAAbstractControlChannel.hpp.
Referenced by CAAbstractControlChannel(), getID(), and sendXMLMessage().
Definition at line 137 of file CAAbstractControlChannel.hpp.
Referenced by CAAbstractControlChannel(), CASyncControlChannel::proccessMessage(), sendXMLMessage(), and setDispatcher().
1.7.6.1