fix: sanitize newlines in telemetry output for valid JSON

- ipgeo_gps: pipe curl output through tr -d to strip newlines
- _ping_iface: pipe printf output through tr -d for newline safety

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-23 01:57:56 +00:00
parent db04341f7c
commit 91373df27d
@@ -141,7 +141,7 @@ eyeride_gps() {
# Query ip-api.com for approximate location. Emits 'lat lon fix'; exit 1 on failure.
ipgeo_gps() {
_resp=$(curl -s --connect-timeout 5 "http://ip-api.com/json/" 2>/dev/null) || return 1
_resp=$(curl -s --connect-timeout 5 "http://ip-api.com/json/" 2>/dev/null | tr -d '\n\r') || return 1
[ -n "$_resp" ] || return 1
_lat=$(_json_get_num "$_resp" "lat")
@@ -222,7 +222,7 @@ _ping_iface() {
# Extract loss percentage: "3 packets transmitted, 3 received, 0% packet loss"
_loss=$(echo "$_out" | sed -n 's/.* \([0-9]*\)% packet loss.*/\1/p')
[ -z "$_loss" ] && _loss="null"
echo "${_avg} ${_loss}"
printf '%s %s\n' "${_avg}" "${_loss}" | tr -d '\n\r'
}
# Compute simple WAN score from latency and loss (0-100, higher = better).