Guard against hostnames/avahi responses with spaces

This commit is contained in:
Michael Bisbjerg 2025-04-06 01:10:27 +02:00 committed by GitHub
parent 646ec30ae5
commit bc099baeb1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -68,22 +68,23 @@ EOF
}
# Discover devices using mDNS
discover_devices() {
if ! command -v avahi-browse &> /dev/null; then
log "ERROR" "$RED" "'avahi-browse' is required but not installed."
exit 1
fi
discover_devices() {
if ! command -v avahi-browse &> /dev/null; then
log "ERROR" "$RED" "'avahi-browse' is required but not installed."
exit 1
fi
mapfile -t raw_devices < <(avahi-browse _wled._tcp --terminate -r -p | awk -F';' '/^=/ {print $7, $8, $9}')
# Map avahi responses to strings seperated by 0x1F (unit separator)
mapfile -t raw_devices < <(avahi-browse _wled._tcp --terminate -r -p | awk -F';' '/^=/ {print $7"\x1F"$8"\x1F"$9}')
local devices_array=()
for device in "${raw_devices[@]}"; do
read -r hostname address port <<< "$device"
devices_array+=("$hostname" "$address" "$port")
done
local devices_array=()
for device in "${raw_devices[@]}"; do
IFS=$'\x1F' read -r hostname address port <<< "$device"
devices_array+=("$hostname" "$address" "$port")
done
echo "${devices_array[@]}"
}
echo "${devices_array[@]}"
}
# Backup one device
backup_one() {