function cmd::list::_precompute_block_status() { local -n _blocked="$1" local -n _restricted="$2" local wg_peers wg_peers=$(wg show "$(config::interface)" peers 2>/dev/null) while IFS= read -r name; do if block::has_specific_rules "$name" 2>/dev/null; then _restricted["$name"]=true else _restricted["$name"]=false fi # Blocked = removed from WG server local pubkey pubkey=$(keys::public "$name" 2>/dev/null || echo "") if [[ -n "$pubkey" ]] && ! echo "$wg_peers" | grep -qF "$pubkey"; then _blocked["$name"]=true else _blocked["$name"]=false fi done < <(peers::all) }