0
0
mirror of https://github.com/openwrt/packages.git synced 2025-01-31 03:41:44 +00:00
packages/net/tor-hs/files/tor_rpcd.sh
Jan Pavlinec 5906bfecd5 tor-hs: add new package
Signed-off-by: Jan Pavlinec <jan.pavlinec@nic.cz>
2020-04-17 13:57:00 +02:00

70 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
. /lib/functions.sh
get_onion_hostname() {
local name="$1"
config_get hs_dir common HSDir
if [ -f "$hs_dir/$name/hostname" ]; then
cat "$hs_dir/$name/hostname"
fi
}
get_port_list() {
local config="$1"
config_get ports "$config" PublicLocalPort
tmp="$(echo $ports |sed "s| |','|g")"
echo -ne "['$tmp']"
}
parse_hs_conf() {
local name description public_port local_port enable_bool public_local_port ipv4
local config="$1"
local custom="$2"
config_get name "$config" Name
config_get description "$config" Description
config_get_bool enable_hs "$config" Enabled 0
config_get ipv4 "$config" IPv4
hostname="$(get_onion_hostname $name)"
port_list="$(get_port_list $config)"
echo "{"
echo \"name\":\"$name\",
echo \"description\":\"$description\",
echo \"enabled\":\"$enable_hs\",
echo \"ipv4\":\"$ipv4\",
echo \"hostname\":\"$hostname\",
echo \"ports\":$port_list
echo "},"
}
get_tor_hs_list() {
config_load tor-hs
echo "{"
echo '"hs-list":['
config_foreach parse_hs_conf hidden-service
echo "]"
echo "}"
}
case "$1" in
list)
echo '{ "list-hs": { } }'
;;
call)
case "$2" in
list-hs)
# return json object
get_tor_hs_list
;;
esac
;;
esac