From d896f65d15fd68d06c36351b618870e7e4ca2586 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sat, 25 Oct 2025 17:30:58 -0500 Subject: [PATCH] Trim whitespace from callsign queries in mobile channel iOS app was sending queries with trailing carriage returns, causing search failures. Add String.trim() to both search_callsign and subscribe_callsign handlers to strip whitespace and control characters. --- lib/aprsme_web/channels/mobile_channel.ex | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/aprsme_web/channels/mobile_channel.ex b/lib/aprsme_web/channels/mobile_channel.ex index d25897b..8404a5e 100644 --- a/lib/aprsme_web/channels/mobile_channel.ex +++ b/lib/aprsme_web/channels/mobile_channel.ex @@ -169,6 +169,9 @@ defmodule AprsmeWeb.MobileChannel do def handle_in("search_callsign", %{"query" => query} = payload, socket) do Logger.info("Mobile websocket received search_callsign: #{inspect(payload)}") + # Trim whitespace and control characters from query + query = String.trim(query) + limit = Map.get(payload, "limit", 50) limit = min(limit, 500) @@ -185,8 +188,8 @@ defmodule AprsmeWeb.MobileChannel do # Max 1 week hours_back = min(hours_back, 168) - # Normalize callsign to uppercase - callsign = String.upcase(callsign) + # Normalize callsign - trim whitespace and convert to uppercase + callsign = callsign |> String.trim() |> String.upcase() # Load historical packets for this callsign socket = load_callsign_history(socket, callsign, hours_back)