secubox-openwrt/package/secubox/luci-app-master-link/root/usr/libexec/rpcd/luci.master_link
CyberMind-FR 13960d39c3 fix(master-link): Rename RPCD to luci.master_link and flatten JSON output
Hyphens in RPCD filenames break ubus CLI argument parsing. Rename
luci.master-link to luci.master_link and update all references in
the JS view, ACL, and Makefile. Also pipe RPCD method output through
tr -d '\n\t' so ubus receives single-line JSON it can parse.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 06:40:41 +01:00

62 lines
1.4 KiB
Bash

#!/bin/sh
. /usr/share/libubox/jshn.sh
case "$1" in
list)
echo '{"status":{},"peers":{},"tree":{},"token_generate":{},"approve":{"fingerprint":"str","action":"str","reason":"str"},"token_cleanup":{}}'
;;
call)
case "$2" in
status)
. /usr/lib/secubox/master-link.sh >/dev/null 2>&1
ml_status | tr -d '\n\t'
;;
peers)
. /usr/lib/secubox/master-link.sh >/dev/null 2>&1
ml_peer_list | tr -d '\n\t'
;;
tree)
. /usr/lib/secubox/master-link.sh >/dev/null 2>&1
ml_tree | tr -d '\n\t'
;;
token_generate)
. /usr/lib/secubox/master-link.sh >/dev/null 2>&1
ml_token_generate | tr -d '\n\t'
;;
approve)
read -r input
fingerprint=$(echo "$input" | jsonfilter -e '@.fingerprint' 2>/dev/null)
action=$(echo "$input" | jsonfilter -e '@.action' 2>/dev/null)
reason=$(echo "$input" | jsonfilter -e '@.reason' 2>/dev/null)
. /usr/lib/secubox/master-link.sh >/dev/null 2>&1
case "$action" in
approve)
ml_join_approve "$fingerprint" | tr -d '\n\t'
;;
reject)
ml_join_reject "$fingerprint" "$reason" | tr -d '\n\t'
;;
promote)
ml_promote_to_submaster "$fingerprint" | tr -d '\n\t'
;;
*)
echo '{"error":"invalid_action"}'
;;
esac
;;
token_cleanup)
. /usr/lib/secubox/master-link.sh >/dev/null 2>&1
ml_token_cleanup | tr -d '\n\t'
;;
*)
echo '{"error":"unknown_method"}'
;;
esac
;;
esac
exit 0