|
Mixes for Privacy and Anonymity in the Internet
|
| virtual CALastMix::~CALastMix | ( | ) | [virtual] |
References clean(), m_pCacheLB, and m_pSocksLB.
| SINT32 CALastMix::clean | ( | ) | [protected, virtual] |
Implements CAMix.
References CAQueue::add(), CASocket::close(), CAMuxSocket::close(), E_SUCCESS, ev_net_prevConnectionClosed, CALastMixChannelList::getFirstSocket(), CALastMixChannelList::getNextSocket(), CAThread::join(), m_bRestart, m_bRunLog, m_pChannelList, m_pMuxIn, CAMix::m_pMuxInControlChannelDispatcher, m_pQueueReadFromMix, m_pQueueSendToMix, CAMixWithReplayDB::m_pReplayMsgProc, m_pRSA, m_pthreadReadFromMix, m_pthreadSendToMix, MONITORING_FIRE_NET_EVENT, t_lastmixchannellist::pCipher, t_lastmixchannellist::pQueueSend, CAMsg::printMsg(), and t_lastmixchannellist::pSocket.
Referenced by ~CALastMix().
| tMixType CALastMix::getType | ( | ) | const [virtual] |
Implements CAMix.
References CAMix::LAST_MIX.
| SINT32 CALastMix::init | ( | ) | [protected, virtual] |
Implements CAMix.
References CAMuxSocket::accept(), E_SUCCESS, E_UNKNOWN, ev_net_keyExchangePrevFailed, ev_net_keyExchangePrevSuccessful, ev_net_prevConnected, CAASymCipher::generateKeyPair(), GET_NET_ERROR, GET_NET_ERROR_STR, CAListenerInterface::getAddr(), CAMuxSocket::getCASocket(), CACmdLnOptions::getListenerInterface(), CACmdLnOptions::getListenerInterfaceCount(), CALibProxytest::getOptions(), CAListenerInterface::isVirtual(), lm_loopReadFromMix, lm_loopSendToMix, LM_PACKET_STATS_LOG_INTERVALL, m_bRestart, m_pChannelList, m_pMuxIn, CAMix::m_pMuxInControlChannelDispatcher, m_pQueueReadFromMix, m_pQueueSendToMix, CAMixWithReplayDB::m_pReplayDB, CAMixWithReplayDB::m_pReplayMsgProc, m_pRSA, m_pthreadReadFromMix, m_pthreadSendToMix, CAMixWithReplayDB::m_u64ReferenceTime, MIXPACKET_SIZE, MONITORING_FIRE_NET_EVENT, CAMsg::printMsg(), processKeyExchange(), readFile(), REPLAY_TIMESTAMP_PROPAGATION_INTERVALL, saveFile(), CASocket::setKeepAlive(), CAThread::setMainLoop(), CASocket::setRecvBuff(), CASocket::setSendBuff(), CADatabase::start(), CAThread::start(), CAReplayCtrlChannelMsgProc::startTimeStampPorpagation(), and CASocketAddr::toString().
| SINT32 CALastMix::initMixCascadeInfo | ( | DOMElement * | mixes | ) | [protected, virtual] |
This will initialize the XML Cascade Info struct XMLFirstMixToInfoService that is sent to the InfoService in CAInfoService::sendCascadeHelo()
| mixes | the <Mixes> element of the XML struct we received from the succeeding mix. |
| E_UNKNOWN | if processing produces an error |
| E_SUCCESS | otherwise |
Reimplemented from CAMix.
References CAMix::m_docMixCascadeInfo, and setDOMElementAttribute().
Referenced by initOnce().
| SINT32 CALastMix::initOnce | ( | ) | [protected, virtual] |
Reimplemented from CAMix.
References E_SUCCESS, E_UNKNOWN, CACmdLnOptions::getMultiSigner(), CALibProxytest::getOptions(), initMixCascadeInfo(), CAMix::m_pMultiSignature, CAMsg::printMsg(), and setTargets().
| virtual SINT32 CALastMix::loop | ( | ) | [protected, pure virtual] |
Implements CAMix.
Implemented in CALastMixB, and CALastMixA.
| SINT32 CALastMix::processKeyExchange | ( | ) | [protected, virtual] |
Processes the startup communication with the preceeding mix.
Getting and calculating the KeepAlive Traffice...
Implements CAMix.
References CAMix::addMixInfo(), CAMix::appendCompatibilityInfo(), CAMix::appendTermsAndConditionsExtension(), CHAIN_TIMEOUT, CHANNEL_DOWNSTREAM_PACKETS, CHANNEL_TIMEOUT, CAMix::checkCompatibility(), createDOMDocument(), createDOMElement(), CABase64::decode(), decodeXMLEncryptedKey(), DOM_Output::dumpToMem(), E_SUCCESS, E_UNKNOWN, CABase64::encode(), FLOW_CONTROL_SENDME_SOFT_LIMIT, GET_NET_ERROR, GET_NET_ERROR_STR, CAMuxSocket::getCASocket(), getDOMChildByName(), getDOMElementValue(), CACmdLnOptions::getKeepAliveRecvInterval(), CACmdLnOptions::getKeepAliveSendInterval(), CALibProxytest::getOptions(), CACmdLnOptions::getPrevMixTestCertificate(), CAASymCipher::getPublicKeyAsDOMElement(), getRandom(), CACmdLnOptions::getTrustedCertificateStore(), len, m_pMuxIn, m_pRSA, CAMix::m_u32KeepAliveRecvInterval, CAMix::m_u32KeepAliveSendInterval, parseDOMDocument(), CAMsg::printMsg(), CAMuxSocket::receiveFully(), CASocket::send(), CAMuxSocket::setCrypt(), setDOMElementAttribute(), setDOMElementValue(), CACmdLnOptions::setPrevMixTestCertificate(), CAMuxSocket::setReceiveKey(), CAMuxSocket::setSendKey(), CAMix::signXML(), CAMix::termsAndConditionsInfoNode(), CAMix::TIMEOUT_MIX_CONNECTION_ESTABLISHEMENT, CACertStore::verifyMixCert(), and CAMultiSignature::verifyXML().
Referenced by init().
| SINT32 CALastMix::reconfigure | ( | ) | [virtual] |
Reimplemented from CAMix.
References E_SUCCESS, CALibProxytest::getOptions(), m_pChannelList, CAMsg::printMsg(), and setTargets().
| SINT32 CALastMix::setTargets | ( | ) | [protected] |
Reads the configured proxies from options.
| E_UNKNOWN | if no proxies are specified |
| E_SUCCESS | if successfully configured the proxies |
References CACacheLoadBalancing::add(), CACacheLoadBalancing::clean(), CATargetInterface::cleanAddr(), E_SUCCESS, E_UNKNOWN, CACacheLoadBalancing::get(), CATargetInterface::getAddr(), CACacheLoadBalancing::getElementCount(), CASocketAddrINet::getIP(), CALibProxytest::getOptions(), CASocketAddrINet::getPort(), CACmdLnOptions::getTargetInterface(), CACmdLnOptions::getTargetInterfaceCount(), CATargetInterface::getTargetType(), m_pCacheLB, m_pSocksLB, CAMsg::printMsg(), TARGET_HTTP_PROXY, and TARGET_SOCKS_PROXY.
Referenced by initOnce(), and reconfigure().
| THREAD_RETURN lm_loopLog | ( | void * | ) | [friend] |
Referenced by CALastMixA::loop(), and CALastMixB::loop().
| THREAD_RETURN lm_loopReadFromMix | ( | void * | pParam | ) | [friend] |
Referenced by init().
| THREAD_RETURN lm_loopSendToMix | ( | void * | param | ) | [friend] |
How to end this thread: 0.
set m_bRestart=true; 1. Close connection to next mix 2. put a byte in the Mix-Output-Queue
Referenced by init().
volatile bool CALastMix::m_bRestart [protected] |
Referenced by clean(), init(), lm_loopReadFromMix(), lm_loopSendToMix(), CALastMixA::loop(), and CALastMixB::loop().
volatile bool CALastMix::m_bRunLog [protected] |
Referenced by clean(), lm_loopLog(), CALastMixA::loop(), and CALastMixB::loop().
volatile UINT64 CALastMix::m_logDownloadedBytes [protected] |
Referenced by lm_loopLog(), CALastMixA::loop(), and CALastMixB::loop().
volatile UINT32 CALastMix::m_logDownloadedPackets [protected] |
Referenced by lm_loopLog(), CALastMixA::loop(), and CALastMixB::loop().
volatile UINT64 CALastMix::m_logUploadedBytes [protected] |
Referenced by lm_loopLog(), CALastMixA::loop(), and CALastMixB::loop().
volatile UINT32 CALastMix::m_logUploadedPackets [protected] |
Referenced by lm_loopLog(), CALastMixA::loop(), and CALastMixB::loop().
CACacheLoadBalancing* CALastMix::m_pCacheLB [protected] |
Referenced by CALastMix(), CALastMixA::loop(), CALastMixB::loop(), setTargets(), and ~CALastMix().
CALastMixChannelList* CALastMix::m_pChannelList [protected] |
Referenced by CALastMix(), clean(), init(), CALastMixA::loop(), and reconfigure().
CAMuxSocket* CALastMix::m_pMuxIn [protected] |
Referenced by CALastMix(), clean(), init(), lm_loopReadFromMix(), lm_loopSendToMix(), CALastMixA::loop(), CALastMixB::loop(), and processKeyExchange().
CAQueue* CALastMix::m_pQueueReadFromMix [protected] |
Referenced by CALastMix(), clean(), init(), lm_loopReadFromMix(), CALastMixA::loop(), and CALastMixB::loop().
CAQueue* CALastMix::m_pQueueSendToMix [protected] |
Referenced by CALastMix(), clean(), init(), lm_loopSendToMix(), CALastMixA::loop(), and CALastMixB::loop().
CAASymCipher* CALastMix::m_pRSA [protected] |
Referenced by CALastMix(), clean(), init(), CALastMixA::loop(), CALastMixB::loop(), and processKeyExchange().
CACacheLoadBalancing* CALastMix::m_pSocksLB [protected] |
Referenced by CALastMix(), CALastMixA::loop(), CALastMixB::loop(), setTargets(), and ~CALastMix().
CAThread* CALastMix::m_pthreadReadFromMix [protected] |
Referenced by CALastMix(), clean(), init(), and CALastMixB::loop().
CAThread* CALastMix::m_pthreadSendToMix [protected] |
Referenced by CALastMix(), clean(), init(), and CALastMixB::loop().
1.7.6.1