|
Mixes for Privacy and Anonymity in the Internet
|
Public Member Functions | |
| virtual void | shutDown () |
Protected Member Functions | |
| SINT32 | loop () |
| SINT32 | closeConnection (fmHashTableEntry *pHashEntry) |
Private Member Functions | |
| bool | sendToUsers () |
| void | notifyAllUserChannels (fmHashTableEntry *pfmHashEntry, UINT16 flags) |
| void | finishPacket (fmHashTableEntry *pfmHashEntry) |
| void | checkUserConnections () |
| SINT32 | accountTrafficUpstream (fmHashTableEntry *pHashEntry) |
| SINT32 | accountTrafficDownstream (fmHashTableEntry *pfmHashEntry) |
| SINT32 CAFirstMixA::accountTrafficDownstream | ( | fmHashTableEntry * | pfmHashEntry | ) | [private] |
References t_fmhashtableentry::bCountPacket, closeConnection(), E_SUCCESS, ERR_INTERN_SOCKET_CLOSED, CAAccountingInstance::HANDLE_PACKET_CLOSE_CONNECTION, CAAccountingInstance::HANDLE_PACKET_CONNECTION_OK, CAAccountingInstance::HANDLE_PACKET_PREPARE_FOR_CLOSING_CONNECTION, CAAccountingInstance::handleJapPacket(), KICKOUT_FORCED, CAFirstMix::m_pChannelList, CAFirstMixChannelList::pushTimeoutEntry(), and CAFirstMixChannelList::setKickoutForced().
Referenced by sendToUsers().
| SINT32 CAFirstMixA::accountTrafficUpstream | ( | fmHashTableEntry * | pHashEntry | ) | [private] |
References t_fmhashtableentry::bRecoverTimeout, closeConnection(), E_SUCCESS, E_UNKNOWN, CAAccountingInstance::HANDLE_PACKET_CLOSE_CONNECTION, CAAccountingInstance::HANDLE_PACKET_CONNECTION_OK, CAAccountingInstance::HANDLE_PACKET_PREPARE_FOR_CLOSING_CONNECTION, CAAccountingInstance::handleJapPacket(), KICKOUT_FORCED, CAFirstMix::m_pChannelList, CAFirstMixChannelList::pushTimeoutEntry(), and CAFirstMixChannelList::setKickoutForced().
Referenced by loop().
| void CAFirstMixA::checkUserConnections | ( | ) | [private] |
References CAQueue::clean(), closeConnection(), CAAccountingInstance::getAuthFlags(), CAQueue::getSize(), CAFirstMixChannelList::isKickoutForced(), CAFirstMixChannelList::isTimedOut(), t_fmhashtableentry::kickoutSendRetries, CAFirstMix::m_pChannelList, t_fmhashtableentry::pControlMessageQueue, CAFirstMixChannelList::popTimeoutEntry(), t_fmhashtableentry::pQueueSend, and CAFirstMixChannelList::pushTimeoutEntry().
Referenced by loop().
| SINT32 CAFirstMixA::closeConnection | ( | fmHashTableEntry * | pHashEntry | ) | [protected] |
References CAQueue::add(), ASSERT, BEGIN_STACK, t_MixPacket::channel, CHANNEL_CLOSE, t_firstmixchannellist::channelOut, t_MixPacket::data, DATA_SIZE, CAFirstMix::decUsers(), E_SUCCESS, E_UNKNOWN, FINISH_STACK, t_MixPacket::flags, getcurrentTimeMillis(), CAFirstMixChannelList::getFirstChannelForSocket(), CAFirstMixChannelList::getNextChannel(), getRandom(), t_fmhashtableentry::id, INIT_STACK, CAFirstMix::m_pChannelList, CAFirstMix::m_pIPList, CAFirstMix::m_pQueueSendToMix, CAFirstMix::m_psocketgroupUsersRead, CAFirstMix::m_psocketgroupUsersWrite, t_queue_entry::packet, t_firstmixchannellist::pCipher, t_fmhashtableentry::peerIP, t_fmhashtableentry::pMuxSocket, t_fmhashtableentry::pQueueSend, CAMsg::printMsg(), t_fmhashtableentry::pSymCipher, CASocketGroupEpoll::remove(), CAFirstMixChannelList::remove(), CAIPList::removeIP(), and setZero64().
Referenced by accountTrafficDownstream(), accountTrafficUpstream(), checkUserConnections(), loop(), sendToUsers(), and shutDown().
| void CAFirstMixA::finishPacket | ( | fmHashTableEntry * | pfmHashEntry | ) | [private] |
References t_MixPacket::channel, CHANNEL_CLOSE, t_firstmixchannellist::channelIn, t_firstmixchannellist::channelOut, t_MixPacket::flags, CAFirstMixChannelList::get(), CAFirstMix::m_pChannelList, t_fmhashtableentry::oQueueEntry, t_queue_entry::packet, t_firstmixchannellist::pCipher, t_fmhashtableentry::pMuxSocket, and CAFirstMixChannelList::removeChannel().
Referenced by sendToUsers().
| SINT32 CAFirstMixA::loop | ( | ) | [protected, virtual] |
Implements CAFirstMix.
References accountTrafficUpstream(), CASocketGroupEpoll::add(), CAQueue::add(), CAFirstMixChannelList::addChannel(), t_fmhashtableentry::bRecoverTimeout, t_MixPacket::channel, CHANNEL_CLOSE, CHANNEL_DATA, CHANNEL_DUMMY, CHANNEL_OPEN, CHANNEL_SIG_CRIME, t_firstmixchannellist::channelIn, t_firstmixchannellist::channelOut, checkUserConnections(), closeConnection(), t_fmhashtableentry::countryID, CASymCipher::crypt1(), CASymCipher::crypt2(), t_MixPacket::data, DATA_SIZE, diff64(), E_SUCCESS, E_UNKNOWN, FIRST_MIX_SIZE_OF_SYMMETRIC_KEYS, t_MixPacket::flags, CAFirstMix::fm_loopLog, CAQueue::get(), CAFirstMixChannelList::get(), getcurrentTimeMicros(), CAFirstMixChannelList::getFirst(), CASocketGroupEpoll::getFirstSignaledSocketData(), CAFirstMixChannelList::getNext(), CASocketGroupEpoll::getNextSignaledSocketData(), CALibProxytest::getOptions(), getRandom(), CAQueue::getSize(), t_fmhashtableentry::id, tUINT32withLock::inc(), CAFirstMix::incMixedPackets(), CADatabase::insert(), CASocketGroupEpoll::isSignaled(), CAThread::join(), CAMutex::lock(), CALockAble::lock(), LOG_ENCRYPTED, CAFirstMix::m_bRestart, CAFirstMix::m_bRunLog, CAFirstMix::m_nUser, CAFirstMix::m_PacketsPerCountryIN, CAFirstMix::m_PacketsPerCountryOUT, CAFirstMix::m_pChannelList, CAFirstMix::m_pmutexLogin, CAFirstMix::m_pQueueReadFromMix, CAFirstMix::m_pQueueSendToMix, CAMixWithReplayDB::m_pReplayDB, CAFirstMix::m_psocketgroupUsersRead, CAFirstMix::m_psocketgroupUsersWrite, MAX_NEXT_MIX_QUEUE_SIZE, MIXPACKET_SIZE, msSleep(), t_queue_entry::packet, t_firstmixchannellist::pCipher, t_fmhashtableentry::pControlChannelDispatcher, t_fmhashtableentry::peerIP, t_firstmixchannellist::pHead, t_fmhashtableentry::pMuxSocket, t_fmhashtableentry::pQueueSend, CAMsg::printMsg(), CAControlChannelDispatcher::proccessMixPacket(), t_fmhashtableentry::pSymCipher, CAFirstMixChannelList::pushTimeoutEntry(), CAMuxSocket::receive(), CAFirstMixChannelList::removeChannel(), RSA_SIZE, CASocketGroupEpoll::select(), sendToUsers(), set64(), CAFirstMixChannelList::setDelayParameters(), CASymCipher::setIV2(), CASymCipher::setKeys(), CAThread::setMainLoop(), setZero64(), CAThread::start(), and CAMutex::unlock().
| void CAFirstMixA::notifyAllUserChannels | ( | fmHashTableEntry * | pfmHashEntry, |
| UINT16 | flags | ||
| ) | [private] |
References CAQueue::add(), t_firstmixchannellist::bIsSuspended, t_MixPacket::channel, t_firstmixchannellist::channelOut, t_fmhashtableentry::cSuspend, t_MixPacket::data, DATA_SIZE, t_MixPacket::flags, flags, CAFirstMixChannelList::getFirstChannelForSocket(), CAFirstMixChannelList::getNextChannel(), getRandom(), CAFirstMix::m_pChannelList, CAFirstMix::m_pQueueSendToMix, MIXPACKET_SIZE, t_queue_entry::packet, and t_fmhashtableentry::pMuxSocket.
| bool CAFirstMixA::sendToUsers | ( | ) | [private] |
References accountTrafficDownstream(), t_fmhashtableentry::bCountPacket, CHANNEL_DATA, closeConnection(), CAFirstMixChannelList::decDelayBuckets(), DELAY_USERS, t_fmhashtableentry::delayBucketID, E_AGAIN, E_SUCCESS, finishPacket(), CAQueue::get(), GET_NET_ERROR, GET_NET_ERROR_STR, CAMuxSocket::getCASocket(), getcurrentTimeMicros(), CAFirstMixChannelList::getFirst(), CASocketGroupEpoll::getFirstSignaledSocketData(), CAFirstMixChannelList::getNext(), CASocketGroupEpoll::getNextSignaledSocketData(), CAQueue::getSize(), CAFirstMixChannelList::hasDelayBuckets(), CASocketGroupEpoll::isSignaled(), isZero64(), len, CAFirstMix::m_pChannelList, CAFirstMix::m_psocketgroupUsersWrite, MIXPACKET_SIZE, t_fmhashtableentry::oQueueEntry, t_queue_entry::packet, t_fmhashtableentry::pControlMessageQueue, t_fmhashtableentry::pMuxSocket, t_fmhashtableentry::pQueueSend, CAMuxSocket::prepareForSend(), CASocketGroupEpoll::select(), CASocket::send(), SOCKET, and t_fmhashtableentry::uAlreadySendPacketSize.
Referenced by loop().
| void CAFirstMixA::shutDown | ( | ) | [virtual] |
Reimplemented from CAMix.
References closeConnection(), CAThread::join(), CAFirstMix::m_bIsShuttingDown, CAFirstMix::m_bRestart, CAFirstMix::m_pChannelList, CAMix::m_pInfoService, CAFirstMix::m_pthreadAcceptUsers, CAFirstMixChannelList::popTimeoutEntry(), CAMsg::printMsg(), and CAInfoService::stop().
1.7.6.1