File tree Expand file tree Collapse file tree 2 files changed +14
-1
lines changed
Expand file tree Collapse file tree 2 files changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -25,6 +25,11 @@ void PRINT(Header::Data* data)
2525 printf (" %3hhu " , data->m_Codes [i]);
2626 }
2727 printf (" ]\n " );
28+ for (unsigned long i = 0 ; i < ntohs (data->m_PayloadSize ) ; i++)
29+ {
30+ std::cout<<(data->m_Codes +(data->m_MaximumRank -1 ))[i];
31+ }
32+ std::cout<<std::endl;
2833}
2934
3035const u08 ReceptionBlock::FindMaximumRank (Header::Data* hdr)
@@ -303,7 +308,10 @@ bool ReceptionBlock::Decoding()
303308 tmp = 0 ;
304309 for (u08 i = 0 ; i < MAX_RANK ; i++)
305310 {
306- tmp ^= FiniteField::instance ()->mul (m_DecodingMatrix[row].get ()[i], m_DecodedPacketBuffer[i].get ()[decodingposition]);
311+ if (decodingposition < ntohs (reinterpret_cast <Header::Data*>(m_DecodedPacketBuffer[i].get ())->m_TotalSize ))
312+ {
313+ tmp ^= FiniteField::instance ()->mul (m_DecodingMatrix[row].get ()[i], m_DecodedPacketBuffer[i].get ()[decodingposition]);
314+ }
307315 }
308316 DecodeOut.back ().get ()[decodingposition] = tmp;
309317 }
Original file line number Diff line number Diff line change @@ -204,6 +204,11 @@ void TransmissionBlock::Retransmission()
204204 for (u08 PacketIndex = 0 ; PacketIndex < m_OriginalPacketBuffer.size () ; PacketIndex++)
205205 {
206206 u08* OriginalBuffer = reinterpret_cast <u08*>(m_OriginalPacketBuffer[PacketIndex].get ());
207+ Header::Data* OriginalHeader = reinterpret_cast <Header::Data*>(OriginalBuffer);
208+ if (CodingOffset >= ntohs (OriginalHeader->m_TotalSize ))
209+ {
210+ continue ;
211+ }
207212 m_RemedyPacketBuffer[CodingOffset] ^= FiniteField::instance ()->mul (OriginalBuffer[CodingOffset], RandomCoefficients[PacketIndex]);
208213 }
209214 }
You can’t perform that action at this time.
0 commit comments