fix(secubox-p2p): Fix shared services endpoint and add peer attribution
- Change service endpoint from port 8080 to /cgi-bin/p2p-services - Exclude local node from shared services query - Extract .services array from response JSON - Add peer address to each shared service for attribution - Handle empty/null responses gracefully Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
e1a8413fa7
commit
2248785ff6
@ -357,11 +357,18 @@ get_services() {
|
||||
# Get shared services (from peers)
|
||||
get_shared_services() {
|
||||
local all_services="[]"
|
||||
local peers=$(get_peers | jq -r '.peers[] | select(.status=="online") | .address')
|
||||
local peers=$(get_peers | jq -r '.peers[] | select(.status=="online") | select(.is_local != true) | .address')
|
||||
|
||||
for peer_addr in $peers; do
|
||||
local peer_services=$(curl -s --connect-timeout 2 "http://${peer_addr}:8080/p2p/services" 2>/dev/null || echo "[]")
|
||||
all_services=$(echo "$all_services" | jq ". += $peer_services")
|
||||
local response=$(curl -s --connect-timeout 2 "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
|
||||
# Add peer info to each service
|
||||
peer_services=$(echo "$peer_services" | jq --arg addr "$peer_addr" '[.[] | . + {peer: $addr}]')
|
||||
all_services=$(echo "$all_services" "$peer_services" | jq -s '.[0] + .[1]' 2>/dev/null)
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
echo "{\"shared_services\":$all_services}"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user