RconClient can't handle large amounts of data


It seems that, with requests that result in many responses, such as punkBuster.pb_sv_command pb_sv_plist, RconClient is unable to handle all of these RCON packets. According to WireShark and my test console, when using the above command, all of the data is sent from the server, but only the first two are parsed by RconClient.
I haven't done any more investigating.


Timiz0r wrote Nov 5, 2011 at 5:09 AM

I believe I have found the problem. There's a loop in ReceiveCallback that keeps looping while LeftoverData contains complete packets. However, the packet parsing is done asynchronously, so the loop doesn't do anything. I'll have the HandlePacketReceive do the looping, instead.

However, that may not end up being the problem, as the data that wasn't read should still be in LeftoverData, and it mysteriously disappeared, according to the debugger. That loop is still a flaw, so it'll need to be fixed anyway.

Timiz0r wrote Nov 5, 2011 at 5:11 AM

I've found the true source of this bug. One of my past updates was removing the ref argument for leftoverdata for DecodePacket. Since, in the prior loop talked about in the last comment, LeftoverData is passed for data, the clearing of the list in DecodePacket also cleared out all of the data, such that the new leftover data could not be read.

wrote Nov 5, 2011 at 5:18 AM

Timiz0r wrote Nov 5, 2011 at 5:44 AM

Note that this also fixed another potential bug, where the PlayerCollection wasn't updating GUIDs immediately after LogOn, even though the playerinfo block was received.

Timiz0r wrote Nov 9, 2011 at 12:50 PM

The bug has been fixed. A copy of LeftoverData is now supplied, instead of the real list.

** Closed by Timiz0r 11/4/2011 9:18 PM

Timiz0r wrote Nov 9, 2011 at 12:50 PM

Keeping bug reports as fixed, not closed, because they're more useful when visible.

wrote Nov 9, 2011 at 12:50 PM

wrote Nov 18, 2011 at 3:28 PM

wrote Feb 13, 2013 at 6:23 PM

wrote May 15, 2013 at 5:09 AM

wrote May 15, 2013 at 5:09 AM

wrote Jun 12, 2013 at 2:02 AM