#!/bin/sh # SecuBox P2P RPCD Handler . /usr/share/libubox/jshn.sh P2P_CMD="/usr/sbin/secubox-p2p" case "$1" in list) cat </dev/null || echo "5") $P2P_CMD discover "$timeout" ;; add_peer) read input address=$(echo "$input" | jsonfilter -e '@.address') name=$(echo "$input" | jsonfilter -e '@.name') if [ -n "$address" ]; then $P2P_CMD add-peer "$address" "$name" else echo '{"success":false,"error":"Address required"}' fi ;; remove_peer) read input peer_id=$(echo "$input" | jsonfilter -e '@.peer_id') if [ -n "$peer_id" ]; then $P2P_CMD remove-peer "$peer_id" else echo '{"success":false,"error":"Peer ID required"}' fi ;; set_settings) read input settings=$(echo "$input" | jsonfilter -e '@.settings') $P2P_CMD set-settings "$settings" ;; sync_catalog) $P2P_CMD sync ;; broadcast_command) read input command=$(echo "$input" | jsonfilter -e '@.command') $P2P_CMD broadcast "$command" ;; get_dns_config) cat </dev/null | wc -l) peers_online=$(jsonfilter -i /tmp/secubox-p2p-peers.json -e '@.peers[*].status' 2>/dev/null | grep -c "online" || echo 0) fi # Count running services for svc in dnsmasq uhttpd crowdsec haproxy; do pgrep "$svc" >/dev/null 2>&1 && services_running=$((services_running + 1)) done cat <