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

Protected Member Functions

SINT32 loop ()
 
- 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)
 

Additional Inherited Members

- Public Types inherited from CAMix
enum  tMixType { FIRST_MIX , MIDDLE_MIX , LAST_MIX , JAP }
 
- 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 ()
 
- 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
 

Member Function Documentation

◆ loop()

SINT32 CALastMixA::loop ( )
protectedvirtual

Do not realy close the connection - just inform the Queue that it is closed, so that the remaining data will be sent to the server

NEW_MIX_TYPE

Implements CALastMix.

References CASocketGroupEpoll::add(), CAQueue::add(), CALastMixChannelList::add(), add64(), CAThreadPool::addRequest(), t_MixPacket::channel, CHANNEL_CLOSE, CHANNEL_DATA, CHANNEL_DEBUG, CHANNEL_OPEN, CHANNEL_SIG_CRIME, t_lastmixchannellist::channelIn, CALastMix::clean(), CAQueue::close(), CASocket::close(), CASocket::connect(), CONNECTION_ERROR_FLAG, CASocket::create(), CASymChannelCipherFactory::createCipher(), CASymChannelCipher::crypt1(), CASymChannelCipher::crypt2(), t_MixPacket::data, t_MixPacketPayload::data, DATA_SIZE, CASymCipherGCM::decryptMessage(), CAASymCipher::decryptOAEP(), CAThreadPool::destroy(), E_SUCCESS, E_UNKNOWN, CASymCipherGCM::encryptMessage(), t_MixPacket::flags, FLOW_CONTROL_SENDME_HARD_LIMIT, FLOW_CONTROL_SENDME_SOFT_LIMIT, GCM_MAC_SIZE, CACacheLoadBalancing::get(), CALastMixChannelList::get(), CAQueue::get(), getcurrentTimeMicros(), getcurrentTimeMillis(), CACacheLoadBalancing::getElementCount(), CASocketGroupEpoll::getFirstSignaledSocketData(), CALastMixChannelList::getFirstSocket(), CASocket::getLocalIP(), CASocket::getLocalPort(), CASocketGroupEpoll::getNextSignaledSocketData(), CALastMixChannelList::getNextSocket(), CALibProxytest::getOptions(), getRandom(), CALastMixChannelList::getSize(), CAQueue::getSize(), CAQueue::getSizeLookFree(), CADatabase::insert(), INTEGRITY_ERROR_FLAG, CAQueue::isClosed(), CAQueue::isEmpty(), isGreater64(), CASocketGroupEpoll::isSignaled(), CAThread::join(), KEY_SIZE, LAST_MIX_SIZE_OF_SYMMETRIC_KEYS, LAST_MIX_TO_PROXY_CONNECT_TIMEOUT, LAST_MIX_TO_PROXY_SEND_TIMEOUT, len, t_MixPacketPayload::len, 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, CALastMix::m_pChannelList, CALastMix::m_pMuxIn, CAMix::m_pMuxInControlChannelDispatcher, CALastMix::m_pQueueReadFromMix, CALastMix::m_pQueueSendToMix, CAMixWithReplayDB::m_pReplayDB, CALastMix::m_pRSA, CALastMix::m_pSocksLB, CALastMix::m_pVPNLB, CAMixWithReplayDB::m_u64ReferenceTime, max, MAX_MIXIN_SEND_QUEUE_SIZE, min, MIX_PAYLOAD_SOCKS, MIX_PAYLOAD_VPN, MIXPACKET_SIZE, msSleep(), NEW_FLOW_CONTROL_FLAG, t_queue_entry::packet, t_MixPacket::payload, PAYLOAD_HEADER_SIZE, PAYLOAD_LEN_MASK, PAYLOAD_SIZE, t_lastmixchannellist::pCipher, CAQueue::peek(), pMix, t_lastmixchannellist::pQueueSend, CAMsg::printMsg(), CAControlChannelDispatcher::proccessMixPacket(), t_lastmixchannellist::pSocket, CASocket::receive(), CASocketGroupEpoll::remove(), CAQueue::remove(), CALastMixChannelList::removeChannel(), REPLAY_BASE, RSA_SIZE, CASocketGroupEpoll::select(), CASocket::send(), t_lastmixchannellist::sendmeCounterDownstream, t_lastmixchannellist::sendmeCounterUpstream, CASocket::sendTimeOut(), set64(), CASymCipherGCM::setGCMKeys(), CAThread::setMainLoop(), CASocket::setNonBlocking(), CASocket::setRecvBuff(), CASocket::setSendBuff(), setZero64(), SOCKET_ERROR, CAThread::start(), THREAD_RETURN, THREAD_RETURN_SUCCESS, and t_MixPacketPayload::type.