Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pbr: prepare migration to APK #23714

Merged
merged 1 commit into from Mar 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion net/pbr/Makefile
Expand Up @@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk

PKG_NAME:=pbr
PKG_VERSION:=1.1.4
PKG_RELEASE:=5
PKG_RELEASE:=r7
PKG_LICENSE:=GPL-3.0-or-later
PKG_MAINTAINER:=Stan Grishin <stangri@melmac.ca>

Expand Down
60 changes: 20 additions & 40 deletions net/pbr/files/etc/init.d/pbr
Expand Up @@ -171,24 +171,13 @@ output() {
printf "%b" "$msg" >> "$sharedMemoryOutput"
fi
}
_build_ifaces_all() { ifacesAll="${ifacesAll}${1} "; }
_build_ifaces_supported() { is_supported_interface "$1" && ! str_contains "$ifacesSupported" "$1" && ifacesSupported="${ifacesSupported}${1} "; }
pbr_find_iface() {
local iface i param="$2"
if [ -n "$procd_wan_interface" ] && [ "$param" = 'wan' ]; then
iface="$procd_wan_interface"
elif [ -n "$procd_wan6_interface" ] && [ "$param" = 'wan6' ]; then
iface="$procd_wan6_interface"
else
"network_find_${param}" iface
is_tunnel "$iface" && unset iface
if [ -z "$iface" ]; then
for i in $ifacesAll; do
if "is_${param}" "$i"; then break; else unset i; fi
done
fi
fi
eval "$1"='${iface:-$i}'
case "$param" in
wan6) iface="$procd_wan6_interface";;
wan|*) iface="$procd_wan_interface";;
esac
eval "$1"='${iface}'
Comment on lines +176 to +180
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do this in separate commit.

}
pbr_get_gateway() {
local iface="$2" dev="$3" gw
Expand Down Expand Up @@ -228,7 +217,6 @@ is_greater() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; }
is_greater_or_equal() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" = "$2"; }
is_ignored_interface() { str_contains_word "$ignored_interface" "$1"; }
is_ignore_target() { [ "$(str_to_lower "$1")" = 'ignore' ]; }
is_installed() { grep -q "Provides: ${1}" /usr/lib/opkg/status; }
is_integer() {
case "$1" in
(*[!0123456789]*) return 1;;
Expand Down Expand Up @@ -366,7 +354,6 @@ check_dnsmasq_nftset() {
}
print_json_bool() { json_init; json_add_boolean "$1" "$2"; json_dump; json_cleanup; }
print_json_string() { json_init; json_add_string "$1" "$2"; json_dump; json_cleanup; }
opkg_get_version() { grep -m1 -A1 "Package: $1$" '/usr/lib/opkg/status' | grep -m1 'Version: ' | sed 's|Version: \(.*\)|\1|'; }

if type extra_command >/dev/null 2>&1; then
extra_command 'status' "Generates output required to troubleshoot routing issues
Expand Down Expand Up @@ -459,11 +446,8 @@ process_url() {
dl_command="uclient-fetch --no-check-certificate -q"
dl_flag="-O"
fi
if curl --version 2>/dev/null | grep -q "https" \
|| wget --version 2>/dev/null | grep -q "+https" \
|| grep -q "libustream-mbedtls" /usr/lib/opkg/status \
|| grep -q "libustream-openssl" /usr/lib/opkg/status \
|| grep -q "libustream-wolfssl" /usr/lib/opkg/status; then
if curl --version 2>/dev/null | grep -q "Protocols: .*https.*" \
|| wget --version 2>/dev/null | grep -q "+ssl"; then
dl_https_supported=1
else
unset dl_https_supported
Expand Down Expand Up @@ -521,8 +505,8 @@ load_package_config() {
config_get procd_boot_timeout 'config' 'procd_boot_timeout' '30'
config_get procd_lan_interface 'config' 'procd_lan_interface'
config_get procd_wan_ignore_status 'config' 'procd_wan_ignore_status' '0'
config_get procd_wan_interface 'config' 'procd_wan_interface'
config_get procd_wan6_interface 'config' 'procd_wan6_interface'
config_get procd_wan_interface 'config' 'procd_wan_interface' 'wan'
config_get procd_wan6_interface 'config' 'procd_wan6_interface' 'wan6'
config_get wan_ip_rules_priority 'config' 'wan_ip_rules_priority' '30000'
config_get wan_mark 'config' 'wan_mark' '010000'
fw_mask="0x${fw_mask}"
Expand Down Expand Up @@ -612,33 +596,29 @@ load_environment() {
}

load_network() {
_build_ifaces_supported() { is_supported_interface "$1" && ! str_contains "$ifacesSupported" "$1" && ifacesSupported="${ifacesSupported}${1} "; }
_find_firewall_wan_zone() { [ "$(uci_get 'firewall' "$1" 'name')" = "wan" ] && firewallWanZone="$1"; }
local i param="$1"
if [ -z "$ifacesSupported" ]; then
config_load 'firewall'
config_foreach _find_firewall_wan_zone 'zone'
for i in $(uci_get 'firewall' "$firewallWanZone" 'network'); do
is_supported_interface "$i" && ! str_contains "$ifacesSupported" "$1" && ifacesSupported="${ifacesSupported}${i} "
if ! is_tunnel "$i"; then
is_wan "$i" && wanIface4="$i"
[ -n "$ipv6_enabled" ] && is_wan6 "$i" && wanIface6="$i"
fi
done
config_load 'network'
[ -z "$ifacesAll" ] && config_foreach _build_ifaces_all 'interface'
config_foreach _build_ifaces_supported 'interface'
fi
[ -z "$wanIface4" ] && pbr_find_iface wanIface4 'wan'
[ -n "$wanIface4" ] && [ -z "$wanGW4" ] && network_get_gateway wanGW4 "$wanIface4"
wanIface4="$procd_wan_interface"
[ -z "$wanGW4" ] && network_get_gateway wanGW4 "$wanIface4"
if [ -n "$ipv6_enabled" ]; then
[ -z "$wanIface6" ] && pbr_find_iface wanIface6 'wan6'
[ -n "$wanIface6" ] && [ -z "$wanGW6" ] && network_get_gateway6 wanGW6 "$wanIface6"
wanIface6="$procd_wan6_interface"
[ -z "$wanGW6" ] && network_get_gateway6 wanGW6 "$wanIface6"
fi
case "$param" in
on_boot|on_start)
[ -n "$wanIface4" ] && output 2 "Found wan interface (${param}): $wanIface4 \\n"
[ -n "$wanIface4" ] && output 2 "Using wan interface (${param}): $wanIface4 \\n"
[ -n "$wanGW4" ] && output 2 "Found wan gateway (${param}): $wanGW4 \\n"
[ -n "$wanIface6" ] && output 2 "Found wan6 interface (${param}): $wanIface6 \\n"
[ -n "$wanIface6" ] && output 2 "Using wan6 interface (${param}): $wanIface6 \\n"
[ -n "$wanGW6" ] && output 2 "Found wan6 gateway (${param}): $wanGW6 \\n"
;;
esac
Expand All @@ -653,7 +633,7 @@ is_wan_up() {
while [ -z "$wanGW" ] ; do
load_network "$param"
if [ $((sleepCount)) -gt $((procd_boot_timeout)) ] || [ -n "$wanGW" ]; then break; fi
output "$serviceName waiting for ${procd_wan_interface:-wan} gateway...\\n"
output "$serviceName waiting for $procd_wan_interface gateway...\\n"
sleep 1
network_flush_cache
sleepCount=$((sleepCount+1))
Expand Down Expand Up @@ -2823,7 +2803,7 @@ status_service_iptables() {
} | tee -a /var/${packageName}-support
if [ -n "$set_p" ]; then
printf "%b" "Pasting to paste.ee... "
if is_present 'curl' && is_installed 'libopenssl' && is_installed 'ca-bundle'; then
if curl --version 2>/dev/null | grep -q "Protocols: .*https.*"; then
json_init; json_add_string 'description' "${packageName}-support"
json_add_array 'sections'; json_add_object '0'
json_add_string 'name' "$(uci_get 'system' '@system[0]' 'hostname')"
Expand Down Expand Up @@ -2862,8 +2842,8 @@ load_validate_config() {
'procd_lan_interface:string' \
'procd_reload_delay:integer:0' \
'procd_wan_ignore_status:bool:0' \
'procd_wan_interface:string' \
'procd_wan6_interface:string' \
'procd_wan_interface:network:wan' \
'procd_wan6_interface:network:wan6' \
'wan_ip_rules_priority:uinteger:30000' \
'rule_create_option:or("", add, insert):add' \
'webui_supported_protocol:list(string)' \
Expand Down