From af56fff2162d4f13a1fc70719750fed3111729b4 Mon Sep 17 00:00:00 2001 From: andrekir Date: Mon, 14 Oct 2024 18:26:59 -0300 Subject: [PATCH] fix: position packet `want_response` handling Process valid position broadcasts with `want_response` true except from position requests with an empty payload (latitude and longitude are zeroes). --- .../main/java/com/geeksville/mesh/service/MeshService.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt index fb7588397..3f5111b27 100644 --- a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt +++ b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt @@ -678,10 +678,13 @@ class MeshService : Service(), Logging { // Handle new style position info Portnums.PortNum.POSITION_APP_VALUE -> { - if (data.wantResponse) return // ignore data from position requests val u = MeshProtos.Position.parseFrom(data.payload) // debug("position_app ${packet.from} ${u.toOneLineString()}") - handleReceivedPosition(packet.from, u, dataPacket.time) + if (data.wantResponse && u.latitudeI == 0 && u.longitudeI == 0) { + debug("Ignoring nop position update from position request") + } else { + handleReceivedPosition(packet.from, u, dataPacket.time) + } } // Handle new style user info