From 14354337cc56a2248769eda646ba9daea2cb9158 Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Sun, 4 Oct 2020 23:21:15 -0400 Subject: [PATCH] Ensure dropped packets are not counted as RXed Ensure dropped packets are not counted as RXed in the following interface drivers: * src/tnc.c * src/aprs_is.c --- src/aprs_is.c | 8 ++++++-- src/tnc.c | 20 +++++++++++--------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/aprs_is.c b/src/aprs_is.c index 50d2595..cea9cb9 100644 --- a/src/aprs_is.c +++ b/src/aprs_is.c @@ -315,11 +315,15 @@ int patty_ax25_aprs_is_pending(patty_ax25_aprs_is *aprs) { } ssize_t patty_ax25_aprs_is_flush(patty_ax25_aprs_is *aprs) { - ssize_t ret = aprs->encoded; + ssize_t ret; if (patty_ax25_aprs_is_pending(aprs)) { aprs->stats.rx_frames++; - aprs->stats.rx_bytes += ret; + aprs->stats.rx_bytes += aprs->encoded; + + ret = aprs->encoded; + } else { + ret = 0; } aprs->state = APRS_IS_HEADER; diff --git a/src/tnc.c b/src/tnc.c index 1363adc..4333508 100644 --- a/src/tnc.c +++ b/src/tnc.c @@ -321,20 +321,22 @@ int patty_kiss_tnc_pending(patty_kiss_tnc *tnc) { } ssize_t patty_kiss_tnc_flush(patty_kiss_tnc *tnc) { + ssize_t ret; + if (patty_kiss_tnc_pending(tnc)) { - ssize_t ret = (ssize_t)tnc->offset_o; - - tnc->state = KISS_NONE; - tnc->command = PATTY_KISS_RETURN; - tnc->offset_o = 0; - tnc->stats.rx_frames++; - tnc->stats.rx_bytes += ret; + tnc->stats.rx_bytes += tnc->offset_o; - return ret; + ret = tnc->offset_o; + } else { + ret = 0; } - return 0; + tnc->state = KISS_NONE; + tnc->command = PATTY_KISS_RETURN; + tnc->offset_o = 0; + + return ret; } ssize_t patty_kiss_tnc_recv(patty_kiss_tnc *tnc, void *buf, size_t len) {