~ruther/NosSmooth.Local

edbc2a403609677a6f286f5bb6ae510eb170be8c — Rutherther 3 years ago ca562ef
fix(client): use correct packet on parsing fail
1 files changed, 16 insertions(+), 8 deletions(-)

M src/Core/NosSmooth.LocalClient/NostaleLocalClient.cs
M src/Core/NosSmooth.LocalClient/NostaleLocalClient.cs => src/Core/NosSmooth.LocalClient/NostaleLocalClient.cs +16 -8
@@ 175,27 175,35 @@ public class NostaleLocalClient : BaseNostaleClient

    private async Task ProcessPacketAsync(PacketSource type, string packetString)
    {
        var packet = _packetSerializer.Deserialize(packetString, type);
        if (!packet.IsSuccess)
        var packetResult = _packetSerializer.Deserialize(packetString, type);
        IPacket packet;
        if (!packetResult.IsSuccess)
        {
            if (packet.Error is not PacketConverterNotFoundError)
            if (packetResult.Error is not PacketConverterNotFoundError)
            {
                _logger.LogWarning("Could not parse {Packet}. Reason:", packetString);
                _logger.LogResultError(packet);
                _logger.LogResultError(packetResult);
                packet = new ParsingFailedPacket(packetResult, packetString);
            }

            packet = new ParsingFailedPacket(packet, packetString);
            else
            {
                packet = new UnresolvedPacket(packetString.Split(' ')[0], packetString);
            }
        }
        else
        {
            packet = packetResult.Entity;
        }

        Result result;
        if (type == PacketSource.Server)
        {
            result = await _packetHandler.HandleReceivedPacketAsync
                (packet.Entity, packetString, _stopRequested ?? default);
                (packet, packetString, _stopRequested ?? default);
        }
        else
        {
            result = await _packetHandler.HandleSentPacketAsync(packet.Entity, packetString, _stopRequested ?? default);
            result = await _packetHandler.HandleSentPacketAsync(packet, packetString, _stopRequested ?? default);
        }

        if (!result.IsSuccess)

Do not follow this link