mirror of
https://github.com/openwrt/packages.git
synced 2025-12-10 12:41:22 +00:00
The init script was appending the 'run' subcommand twice. The first instance was misplaced, causing a command syntax error by placing 'run' before other tunnel options, which breaks the service. This patch removes the first, incorrect 'run' argument, leaving the second one in the correct position after all options have been set. This fixes a regression introduced in pull request #27786. Ref: https://github.com/openwrt/packages/pull/27786 Signed-off-by: Bohdan Chubuk <chbgdn@gmail.com>
65 lines
1.4 KiB
Bash
Executable File
65 lines
1.4 KiB
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
# Copyright (C) 2021 Tianling Shen <cnsztl@immortalwrt.org>
|
|
|
|
USE_PROCD=1
|
|
START=99
|
|
|
|
CONF="cloudflared"
|
|
PROG="/usr/bin/cloudflared"
|
|
|
|
append_param_arg() {
|
|
local value
|
|
|
|
config_get value "config" "$1" $2
|
|
[ -n "$value" ] && procd_append_param command "--${1//_/-}" "$value"
|
|
}
|
|
|
|
start_service() {
|
|
config_load "$CONF"
|
|
|
|
local enabled
|
|
local token
|
|
|
|
config_get_bool enabled "config" "enabled"
|
|
[ "$enabled" -eq "1" ] || return 1
|
|
|
|
procd_open_instance "$CONF"
|
|
procd_set_param command "$PROG" "tunnel"
|
|
procd_append_param command "--no-autoupdate"
|
|
|
|
append_param_arg "edge_bind_address"
|
|
append_param_arg "edge_ip_version"
|
|
append_param_arg "grace_period"
|
|
append_param_arg "protocol"
|
|
append_param_arg "region"
|
|
append_param_arg "retries"
|
|
append_param_arg "tag"
|
|
append_param_arg "metrics"
|
|
append_param_arg "loglevel"
|
|
append_param_arg "logfile"
|
|
|
|
config_get token "config" "token"
|
|
if [ -z "$token" ]; then
|
|
# Locally-managed tunnels
|
|
append_param_arg "config" "/etc/cloudflared/config.yml"
|
|
append_param_arg "origincert" "/etc/cloudflared/cert.pem"
|
|
fi
|
|
|
|
procd_append_param command "run"
|
|
|
|
if [ -n "$token" ]; then
|
|
# Remotely-managed tunnel (recommended by Cloudflare)
|
|
procd_append_param command "--token" "$token"
|
|
fi
|
|
|
|
procd_set_param respawn
|
|
procd_set_param stderr 1
|
|
|
|
procd_close_instance
|
|
}
|
|
|
|
service_triggers() {
|
|
procd_add_reload_trigger "$CONF"
|
|
procd_add_interface_trigger "interface.*.up" "wan" /etc/init.d/cloudflared restart
|
|
}
|