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 (from peers)
|
||||||
get_shared_services() {
|
get_shared_services() {
|
||||||
local all_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
|
for peer_addr in $peers; do
|
||||||
local peer_services=$(curl -s --connect-timeout 2 "http://${peer_addr}:8080/p2p/services" 2>/dev/null || echo "[]")
|
local response=$(curl -s --connect-timeout 2 "http://${peer_addr}/cgi-bin/p2p-services" 2>/dev/null)
|
||||||
all_services=$(echo "$all_services" | jq ". += $peer_services")
|
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
|
done
|
||||||
|
|
||||||
echo "{\"shared_services\":$all_services}"
|
echo "{\"shared_services\":$all_services}"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user