|
|
|
|
@ -198,11 +198,6 @@ void CBMProtocol::HandleQueue(void)
|
|
|
|
|
// get the packet
|
|
|
|
|
auto packet = m_Queue.pop();
|
|
|
|
|
|
|
|
|
|
// check if origin of packet is local
|
|
|
|
|
// if not, do not stream it out as it will cause
|
|
|
|
|
// network loop between linked XLX peers
|
|
|
|
|
if ( packet->IsLocalOrigin() )
|
|
|
|
|
{
|
|
|
|
|
// encode it
|
|
|
|
|
CBuffer buffer;
|
|
|
|
|
if ( EncodeDvPacket(*packet, buffer) )
|
|
|
|
|
@ -245,7 +240,6 @@ void CBMProtocol::HandleQueue(void)
|
|
|
|
|
g_Reflector.ReleaseClients();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
m_Queue.Unlock();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -351,9 +345,6 @@ void CBMProtocol::OnDvHeaderPacketIn(std::unique_ptr<CDvHeaderPacket> &Header, c
|
|
|
|
|
// todo: verify Packet.GetModuleId() is in authorized list of XLX of origin
|
|
|
|
|
// todo: do the same for DVFrame and DVLAstFrame packets
|
|
|
|
|
|
|
|
|
|
// tag packet as remote peer origin
|
|
|
|
|
Header->SetRemotePeerOrigin();
|
|
|
|
|
|
|
|
|
|
// find the stream
|
|
|
|
|
auto stream = GetStream(Header->GetStreamId());
|
|
|
|
|
if ( stream )
|
|
|
|
|
@ -389,15 +380,6 @@ void CBMProtocol::OnDvHeaderPacketIn(std::unique_ptr<CDvHeaderPacket> &Header, c
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CBMProtocol::OnDvFramePacketIn(std::unique_ptr<CDvFramePacket> &DvFrame, const CIp *Ip)
|
|
|
|
|
{
|
|
|
|
|
// tag packet as remote peer origin
|
|
|
|
|
DvFrame->SetRemotePeerOrigin();
|
|
|
|
|
|
|
|
|
|
// anc call base class
|
|
|
|
|
CProtocol::OnDvFramePacketIn(DvFrame, Ip);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
// packet decoding helpers
|
|
|
|
|
|
|
|
|
|
|