-
Notifications
You must be signed in to change notification settings - Fork 7
Packet Processing
zeroKilo edited this page May 11, 2020
·
5 revisions
In the lowest layer, packets are received via UDP. From there they are first processed by their streamtype
from Quazal::TransportStreamManager::DemuxIncomingPacket
one of 2 streamhandlers is called:
This is just used for the NAT detection `
-> Quazal::HighLevelStream::ReceiveIncomingPacket
-> Quazal::NATTraversalStream::ReceiveIncomingMsg
-> Quazal::NATTraversalEngine::ReceiveMessage
...`
these packets are put into a job with a handler and dispatched for execution later `
-> ???
-> Quazal::PRUDPStream::ReceiveIncomingPacket
-> Quazal::PRUDPEndPoint::ServiceIncomingPacket
-> Quazal::PRUDPEndPoint::Dispatch
-> Quazal::PRUDPEndPoint::HandlerDispatch
-> Quazal::ClientStreamManager::Receive (job gets scheduled here)`
after a DATA packet has been processed, a job is dispatched to handle its content `
YETI
-> ???
-> sub_84FD60
-> sub_84D990
-> sub_86C0D0
-> sub_6AB200
-> sub_6B56A0
OSDK
-> Quazal::Scheduler::DispatchAll
-> Quazal::Scheduler::Dispatch
-> Quazal::Scheduler::DispatchUnlocked
-> Quazal::Scheduler::DispatchImpl
-> Quazal::Scheduler::ProcessJob`
from here one of 2 DATA handlers is called
`
-> Quazal::JobProcessProtocolMessage::Execute
-> Quazal::ClientProtocolRequestBroker::ProcessMessage
-> Quazal::ClientProtocolRequestBroker::ProcessMessageCore
-> Quazal::ClientProtocolRequestBroker::ProcessCallResponse
-> Quazal::ClientProtocol::ProcessResponse`
`
-> Quazal::ObjDupProtocol::Dispatch
-> Quazal::ObjDupProtocol::DispatchExtractMessageType
-> Quazal::ObjDupProtocol::DispatchTrace
-> Quazal::ObjDupProtocol::ParseSpecificMessage`