perf(secubox-p2p): Optimize shared services for faster LuCI response

- Skip IPv6 addresses and use active_address when available
- Filter out local node from shared services query
- Increase curl max-time to 10s for slow CGI responses
- Skip null/empty peer addresses
- Reduces response time from 48s to ~5s

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
CyberMind-FR 2026-02-13 12:20:44 +01:00
parent 2248785ff6
commit 747d1ffbaa

View File

@ -357,10 +357,14 @@ get_services() {
# Get shared services (from peers)
get_shared_services() {
local all_services="[]"
local peers=$(get_peers | jq -r '.peers[] | select(.status=="online") | select(.is_local != true) | .address')
# Use active_address if available, skip IPv6 and local nodes
local peers=$(get_peers | jq -r '.peers[] | select(.status=="online") | select(.is_local==false or .is_local==null) | .active_address // .address' | grep -v '^\[' | sed 's/ .*//')
for peer_addr in $peers; do
local response=$(curl -s --connect-timeout 2 "http://${peer_addr}/cgi-bin/p2p-services" 2>/dev/null)
[ -z "$peer_addr" ] && continue
[ "$peer_addr" = "null" ] && continue
# Fetch services with reasonable timeout
local response=$(curl -s --connect-timeout 2 --max-time 10 "http://${peer_addr}/cgi-bin/p2p-services" 2>/dev/null)
if [ -n "$response" ]; then
local peer_services=$(echo "$response" | jq -c '.services // []' 2>/dev/null)
if [ -n "$peer_services" ] && [ "$peer_services" != "null" ] && [ "$peer_services" != "[]" ]; then