Fetch packets outside of replay proxy, so we can serve other commands

This commit is contained in:
baldurk
2016-08-02 17:23:10 +02:00
parent 45de1f2b5f
commit 5a6a200432
3 changed files with 16 additions and 10 deletions
+12 -1
View File
@@ -308,8 +308,19 @@ void RenderDoc::BecomeRemoteServer(const char *listenhost, uint16_t port, volati
while(client)
{
if(!proxy->Tick() || killReplay)
int packet;
Serialiser *data = NULL;
if(!RecvPacket(client, packet, &data))
{
SAFE_DELETE(data);
SAFE_DELETE(client);
break;
}
if(!proxy->Tick(packet, data) || killReplay)
{
SAFE_DELETE(data);
SAFE_DELETE(client);
}
}
+3 -8
View File
@@ -1745,7 +1745,7 @@ void ProxySerialiser::EnsureBufCached(ResourceId bufid)
}
}
bool ProxySerialiser::Tick()
bool ProxySerialiser::Tick(int type, Serialiser *incomingPacket)
{
if(!m_RemoteServer)
return true;
@@ -1753,10 +1753,7 @@ bool ProxySerialiser::Tick()
if(!m_Socket)
return false;
ReplayProxyPacket type;
if(!RecvPacket(m_Socket, type, &m_ToReplaySerialiser))
return false;
m_ToReplaySerialiser = incomingPacket;
m_FromReplaySerialiser->Rewind();
@@ -1842,11 +1839,9 @@ bool ProxySerialiser::Tick()
DebugThread(0, dummy1, dummy2);
break;
}
default: RDCERR("Unexpected command"); break;
default: RDCERR("Unexpected command"); return false;
}
SAFE_DELETE(m_ToReplaySerialiser);
if(!SendPacket(m_Socket, type, *m_FromReplaySerialiser))
return false;
+1 -1
View File
@@ -341,7 +341,7 @@ public:
return ResourceId();
}
bool Tick();
bool Tick(int type, Serialiser *incomingPacket);
vector<ResourceId> GetBuffers();
FetchBuffer GetBuffer(ResourceId id);