Mixes for Privacy and Anonymity in the Internet
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
CALastMixB Class Reference
Inheritance diagram for CALastMixB:
CALastMix CAMixWithReplayDB CAMix

Public Member Functions

 CALastMixB ()
 
- Public Member Functions inherited from CALastMix
 CALastMix ()
 
virtual ~CALastMix ()
 
SINT32 reconfigure ()
 
tMixType getType () const
 
- Public Member Functions inherited from CAMixWithReplayDB
 CAMixWithReplayDB ()
 
CADatabasegetReplayDB () const
 
- Public Member Functions inherited from CAMix
 CAMix ()
 
virtual ~CAMix ()
 
SINT32 start ()
 
virtual void shutDown ()
 
virtual bool isShutDown ()
 
SINT32 getMixCascadeInfo (XERCES_CPP_NAMESPACE::DOMDocument *&docMixCascadeInfo)
 Returns the Mix-Cascade info which should be send to the InfoService. More...
 
bool acceptsReconfiguration ()
 
CAControlChannelDispatchergetDownstreamControlChannelDispatcher () const
 
CAControlChannelDispatchergetUpstreamControlChannelDispatcher () const
 
UINT32 getLastConnectionTime ()
 
bool isConnected ()
 

Protected Member Functions

SINT32 loop ()
 
void reconfigureMix ()
 
- Protected Member Functions inherited from CALastMix
SINT32 init ()
 
virtual SINT32 initOnce ()
 
SINT32 clean ()
 
SINT32 initMixCascadeInfo (DOMElement *)
 This will initialize the XML Cascade Info struct XMLFirstMixToInfoService that is sent to the InfoService in CAInfoService::sendCascadeHelo() More...
 
virtual SINT32 processKeyExchange ()
 Processes the startup communication with the preceeding mix. More...
 
SINT32 setTargets ()
 Reads the configured proxies from options. More...
 
- Protected Member Functions inherited from CAMix
SINT32 checkCompatibility (DOMNode *a_parent, const char *a_mixPosition)
 
SINT32 appendCompatibilityInfo (DOMNode *a_parent)
 
SINT32 addMixInfo (DOMNode *a_element, bool a_bForceFirstNode)
 
SINT32 signXML (DOMNode *a_element)
 

Private Attributes

CAChainTablem_pChainTable
 
CALastMixBChannelListm_pChannelTable
 

Additional Inherited Members

- Public Types inherited from CAMix
enum  tMixType { FIRST_MIX , MIDDLE_MIX , LAST_MIX , JAP }
 
- Public Attributes inherited from CAMixWithReplayDB
UINT64 m_u64ReferenceTime
 
- Static Public Attributes inherited from CAMix
static const UINT32 TIMEOUT_MIX_CONNECTION_ESTABLISHEMENT = 60000
 
- Protected Attributes inherited from CALastMix
volatile bool m_bRestart
 
CAMuxSocketm_pMuxIn
 
CAQueuem_pQueueSendToMix
 
CAQueuem_pQueueReadFromMix
 
CACacheLoadBalancingm_pCacheLB
 
CACacheLoadBalancingm_pSocksLB
 
CACacheLoadBalancingm_pVPNLB
 
CAASymCipherm_pRSA
 
CAThreadm_pthreadSendToMix
 
CAThreadm_pthreadReadFromMix
 
CALastMixChannelListm_pChannelList
 
volatile bool m_bRunLog
 
volatile UINT32 m_logUploadedPackets
 
volatile UINT64 m_logUploadedBytes
 
volatile UINT32 m_logDownloadedPackets
 
volatile UINT64 m_logDownloadedBytes
 
- Protected Attributes inherited from CAMixWithReplayDB
CADatabasem_pReplayDB
 
CAReplayCtrlChannelMsgProcm_pReplayMsgProc
 
- Protected Attributes inherited from CAMix
volatile bool m_bLoop
 
bool m_bReconfiguring
 
volatile bool m_bShutDown
 
CAMultiSignaturem_pMultiSignature
 
CAInfoServicem_pInfoService
 
UINT32 m_u32KeepAliveRecvInterval
 
UINT32 m_u32KeepAliveSendInterval
 
bool m_acceptReconfiguration
 
volatile bool m_bConnected
 
volatile UINT32 m_lLastConnectionTime
 
XERCES_CPP_NAMESPACE::DOMDocument * m_docMixCascadeInfo
 
CAControlChannelDispatcherm_pMuxOutControlChannelDispatcher
 
CAControlChannelDispatcherm_pMuxInControlChannelDispatcher
 

Constructor & Destructor Documentation

◆ CALastMixB()

CALastMixB::CALastMixB ( )

References m_pChainTable, and m_pChannelTable.

Member Function Documentation

◆ loop()

SINT32 CALastMixB::loop ( )
protectedvirtual

Implements CALastMix.

References CAQueue::add(), CALastMixBChannelList::add(), add64(), CAChain::addChannel(), CAChain::addDataToUpstreamQueue(), CAChain::addToSocketGroup(), CHAINFLAG_FAST_RESPONSE, CHAINFLAG_LENGTH_MASK, CHAINFLAG_NEW_CHAIN, CHAINFLAG_STREAM_CLOSED, t_sequel_upstream_chain_cell::chainId, t_MixPacket::channel, CHANNEL_CLOSE, CHANNEL_DATA, CHANNEL_DUMMY, CHANNEL_OPEN, CAMuxSocket::close(), CASocket::close(), CAChain::closeUpstream(), CASocket::connect(), CASocket::create(), CAChainTable::createEntry(), t_MixPacket::data, t_first_upstream_chain_cell::data, t_sequel_upstream_chain_cell::data, DATA_SIZE, CAASymCipher::decrypt(), CAChainTable::deleteEntry(), E_SUCCESS, E_UNKNOWN, t_upstream_chain_cell::firstCell, t_MixPacket::flags, CACacheLoadBalancing::get(), CALastMixBChannelList::get(), CAQueue::get(), CAChain::getChainId(), getcurrentTimeMicros(), CACacheLoadBalancing::getElementCount(), CAChainTable::getEntry(), CAChainTable::getFirstEntry(), CASocketGroupEpoll::getFirstSignaledSocketData(), CAChainTable::getNextEntry(), CASocketGroupEpoll::getNextSignaledSocketData(), getRandom(), CAQueue::getSize(), CAChainTable::getSize(), CADatabase::insert(), CAChain::isSignaledInSocketGroup(), CAThread::join(), KEY_SIZE, LAST_MIX_TO_PROXY_CONNECT_TIMEOUT, LAST_MIX_TO_PROXY_SEND_TIMEOUT, lengthAndFlags, t_upstream_chain_cell::lengthAndFlags, CALastMix::lm_loopLog, LOG_ENCRYPTED, CALastMix::m_bRestart, CALastMix::m_bRunLog, CALastMix::m_logDownloadedBytes, CALastMix::m_logDownloadedPackets, CALastMix::m_logUploadedBytes, CALastMix::m_logUploadedPackets, CALastMix::m_pCacheLB, m_pChainTable, m_pChannelTable, CALastMix::m_pMuxIn, CAMix::m_pMuxInControlChannelDispatcher, CALastMix::m_pQueueReadFromMix, CALastMix::m_pQueueSendToMix, CAMixWithReplayDB::m_pReplayDB, CALastMix::m_pRSA, CALastMix::m_pSocksLB, CALastMix::m_pthreadReadFromMix, CALastMix::m_pthreadSendToMix, MAX_FIRST_UPSTREAM_CHAINCELL_PAYLOAD, MAX_MIXIN_SEND_QUEUE_SIZE, MAX_POLLFD, MAX_SEQUEL_UPSTREAM_CHAINCELL_PAYLOAD, MIX_PAYLOAD_SOCKS, MIXPACKET_SIZE, msSleep(), t_queue_entry::packet, CAMsg::printMsg(), CAControlChannelDispatcher::proccessMixPacket(), CAChain::processDownstream(), RSA_SIZE, CASocketGroupEpoll::select(), CASocket::sendTimeOut(), CAChain::sendUpstreamData(), t_upstream_chain_cell::sequelCell, set64(), CASymCipher::setKey(), CAThread::setMainLoop(), CASocket::setNonBlocking(), CASocket::setRecvBuff(), CASocket::setSendBuff(), CAChain::setSocket(), setZero64(), CAChain::signalConnectionError(), CAChain::signalUnknownChain(), SOCKET_ERROR, CAThread::start(), and t_first_upstream_chain_cell::type.

◆ reconfigureMix()

void CALastMixB::reconfigureMix ( )
protected

Member Data Documentation

◆ m_pChainTable

CAChainTable* CALastMixB::m_pChainTable
private

Referenced by CALastMixB(), loop(), and reconfigureMix().

◆ m_pChannelTable

CALastMixBChannelList* CALastMixB::m_pChannelTable
private

Referenced by CALastMixB(), and loop().