28 #ifndef __CAMIDDLEMIX__
29 #define __CAMIDDLEMIX__
40 #ifdef REPLAY_DETECTION
59 m_bBreakNeeded =
false;
61 #ifdef LOG_PACKET_TIMES
62 m_pLogPacketStats = NULL;
140 #ifdef LOG_PACKET_TIMES
141 CALogPacketStats *m_pLogPacketStats;
153 static void crimeSurveillanceUpstream(
MIXPACKET *pMixPacket,
HCHANNEL prevMixChannel);
Data structure that stores all information about the currently open Mix channels.
UINT32 m_u32KeepAliveSendInterval2
int accessSharedMemory(int semId, tPoolEntry *destination, tPoolEntry *source)
CAQueue * m_pQueueSendToMixAfter
friend THREAD_RETURN mm_loopReadFromMixAfter(void *)
friend THREAD_RETURN mm_loopSendToMixAfter(void *)
UPSTREAM (to WEB) Take the packets from the Queue and write them to the Socket.
UINT32 m_u32KeepAliveRecvInterval2
virtual SINT32 initMixCascadeInfo(DOMElement *)
This method is not applicable to middle mixes; it does nothing.
const char * downstreamMemoryPreName
virtual SINT32 processKeyExchange()
Processes key exchange with Mix n+1 and Mix n-1.
SINT32 loop()
Processes Upstream-MixPackets.
const char * downstreamMemoryPostName
void * downstreamPreBuffer
SINT32 connectToNextMix(CASocketAddr *a_pAddrNext)
const char * upstreamMemoryPreName
CAQueue * m_pQueueSendToMixBefore
friend THREAD_RETURN mm_loopReadFromMixBefore(void *)
friend THREAD_RETURN mm_loopSendToMixBefore(void *)
DOWNSTREAM (to Client) Take the packets from the Queue and write them to the Socket.
const char * upstreamMemoryPostName
void * downstreamPostBuffer
CAMiddleMixChannelList * m_pMiddleMixChannelList
SINT32 putMixPacketIntoQueueSendToMixBefore(tPoolEntry *pPoolEntry)
void * upstreamPostBuffer
CAInfoService * m_pInfoService
CAMultiSignature * m_pMultiSignature
This class (interface) adds the functionality used by last and middle mixes to detecte replays.
This is a simple FIFO-Queue.
This is an abstract class for representing a socket address used in CASocket, CADatagramSocket and CA...