Drain oversized LoRa packets to prevent RX FIFO corruption
This commit is contained in:
@@ -138,6 +138,16 @@ bool lora_receive(LoraPacket &pkt, uint32_t timeout_ms) {
|
|||||||
while (LoRa.available() && len < sizeof(buffer)) {
|
while (LoRa.available() && len < sizeof(buffer)) {
|
||||||
buffer[len++] = LoRa.read();
|
buffer[len++] = LoRa.read();
|
||||||
}
|
}
|
||||||
|
if (LoRa.available()) {
|
||||||
|
while (LoRa.available()) {
|
||||||
|
LoRa.read();
|
||||||
|
}
|
||||||
|
if (SERIAL_DEBUG_MODE) {
|
||||||
|
Serial.println("rx_reject: oversize packet drained");
|
||||||
|
}
|
||||||
|
note_reject(RxRejectReason::LengthMismatch);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (len < 5) {
|
if (len < 5) {
|
||||||
note_reject(RxRejectReason::LengthMismatch);
|
note_reject(RxRejectReason::LengthMismatch);
|
||||||
|
|||||||
Reference in New Issue
Block a user