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:
@@ -141,7 +141,7 @@ eyeride_gps() {
|
|||||||
|
|
||||||
# Query ip-api.com for approximate location. Emits 'lat lon fix'; exit 1 on failure.
|
# Query ip-api.com for approximate location. Emits 'lat lon fix'; exit 1 on failure.
|
||||||
ipgeo_gps() {
|
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
|
[ -n "$_resp" ] || return 1
|
||||||
|
|
||||||
_lat=$(_json_get_num "$_resp" "lat")
|
_lat=$(_json_get_num "$_resp" "lat")
|
||||||
@@ -222,7 +222,7 @@ _ping_iface() {
|
|||||||
# Extract loss percentage: "3 packets transmitted, 3 received, 0% packet loss"
|
# Extract loss percentage: "3 packets transmitted, 3 received, 0% packet loss"
|
||||||
_loss=$(echo "$_out" | sed -n 's/.* \([0-9]*\)% packet loss.*/\1/p')
|
_loss=$(echo "$_out" | sed -n 's/.* \([0-9]*\)% packet loss.*/\1/p')
|
||||||
[ -z "$_loss" ] && _loss="null"
|
[ -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).
|
# Compute simple WAN score from latency and loss (0-100, higher = better).
|
||||||
|
|||||||
Reference in New Issue
Block a user