// Received an unfinished group.
packet_history.clear();
}
- sender->send_packet(proto, data, incoming_seq);
+ bool debug_drop_packet = false; // For testing only.
+ if (incoming_seq % RS_PAYLOAD_SIZE == 3) {
+ //debug_drop_packet = true;
+ }
+ if (debug_drop_packet) {
+ const unsigned char *ptr = reinterpret_cast<const unsigned char *>(data.data());
+ printf("DEBUG: Dropping packet seq=%d proto=0x%04x len=%d data=%02x %02x %02x %02x %02x %02x %02x %02x ...\n",
+ incoming_seq, proto, data.size(), ptr[0], ptr[1], ptr[2], ptr[3], ptr[4], ptr[5], ptr[6], ptr[7]);
+ } else {
+ sender->send_packet(proto, data, incoming_seq);
+ }
packet_history.emplace_back(GREPacket{incoming_seq, proto, data});
if (packet_history.size() == RS_PAYLOAD_SIZE) {
finish_group();
const char *sdata = reinterpret_cast<const char *>(data);
int start_seq = packet_history[0].seq - 1;
- for (int i = 0; i < RS_PARITY_SIZE; ++i) {
- sender->send_packet(0xffff, string(sdata, size), start_seq - (packet_num - RS_PAYLOAD_SIZE));
- }
+ sender->send_packet(0xffff, string(sdata, size), start_seq - (packet_num - RS_PAYLOAD_SIZE));
});
packet_history.clear();