From bddf6c67c2f6822f9f2b02b0c478bc0af71e1e8a Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sat, 20 Mar 2021 22:39:15 -0500 Subject: [PATCH] Don't decode LE contents until after splitting by "&" (#500) Should fix evidence, again. --- src/packet_distribution.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/packet_distribution.cpp b/src/packet_distribution.cpp index 95b8fa0..f3810ca 100644 --- a/src/packet_distribution.cpp +++ b/src/packet_distribution.cpp @@ -120,6 +120,7 @@ void AOApplication::append_to_demofile(QString packet_string) void AOApplication::server_packet_received(AOPacket *p_packet) { + QStringList f_contents_encoded = p_packet->get_contents(); p_packet->net_decode(); QString header = p_packet->get_header(); @@ -540,12 +541,16 @@ void AOApplication::server_packet_received(AOPacket *p_packet) if (courtroom_constructed) { QVector f_evi_list; - for (QString f_string : f_contents) { + for (QString f_string : f_contents_encoded) { QStringList sub_contents = f_string.split("&"); if (sub_contents.size() < 3) continue; + // decoding has to be done here instead of on reception + // because this packet uses & as a delimiter for some reason + AOPacket::unescape(sub_contents); + evi_type f_evi; f_evi.name = sub_contents.at(0); f_evi.description = sub_contents.at(1); @@ -723,11 +728,9 @@ void AOApplication::send_server_packet(AOPacket *p_packet, bool encoded) p_packet->net_encode(); QString f_packet = p_packet->to_string(); - #ifdef DEBUG_NETWORK qDebug() << "S:" << f_packet; #endif - net_manager->ship_server_packet(f_packet); delete p_packet;