Files
openwrt-packages/net/ampr-ripd/files/ampr-ripd-init
Dan Srebnick 551ef4a7c1 ampr-ripd: script improvements and add QA script
Added test.sh
Predetermine count used by for loops in Makefile postrm
Implemented extra_command in initscript
Resolved shellcheck issues
Bump release

Signed-off-by: Dan Srebnick <k2ie@k2ie.net>
2025-09-12 00:56:17 +03:00

84 lines
1.9 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
START=95
STOP=10
extra_command "configure" "Configure service parameters"
start() {
default_addr="44.127.254.254"
if [ "$(uci get network.amprlan.ipaddr)" = "$default_addr" ] || \
[ "$(uci get network.amprwan.ipaddr)" = "$default_addr" ]; then
cat <<-EOF
ampr-ripd is not fully configured.
You must run /etc/init.d/ampr-ripd configure.
EOF
exit 1
fi
if [ ! -d /var/lib/ampr-ripd ]; then
mkdir -p /var/lib/ampr-ripd
fi
ip tunnel change ttl 64 mode ipip tunl0
ip link set dev tunl0 up
ifconfig tunl0 mtu 1480
tunnet=$(uci -q get ampr-ripd.network.tunnet)
/usr/sbin/ampr-ripd -s -r -t 44 -i tunl0 -a "$tunnet"
}
stop() {
ifconfig tunl0 down
killall ampr-ripd
}
configure() {
if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ]; then
cat <<-EOF
Usage: /etc/init.d/ampr-ripd configure [amprhost] [amprmask] [amprnet]
amprhost is the 44 net address assigned to your OpenWrt host
amprmask is the full netmask of your AMPR assigned network
amprnet is the network number of your AMPR assigned network
Eg. /etc/init.d/ampr-ripd configure 44.127.254.1 255.255.255.0 44.127.254.0
EOF
exit 1
fi
amprhost=$1
amprmask=$2
amprnet=$3
cat <<-EOF
Configuring ampr-ripd with values:
amprhost=$amprhost
amprmask=$amprmask
amprnet=$amprnet
EOF
tunnet=$amprnet/$amprmask
uci set ampr-ripd.network.tunnet="$tunnet"
uci commit ampr-ripd
uci set network.amprlan.ipaddr="$amprhost"
uci set network.amprlan.netmask="$amprmask"
uci set network.amprwan.ipaddr="$amprhost"
uci set network.amprwan.netmask="$amprmask"
for i in $(uci show network | awk -F= "/@rule/ && /lookup='44'/ {split(\$1, conf, /[.=]/); print conf[2]}"); do
if [ "$(uci -q get "network.$i.priority")" = "45" ]; then
uci set "network.$i.src=$tunnet"
fi
done
uci commit network
cat <<-EOF
Now, do the following:
/etc/init.d/ampr-ripd restart
/etc/init.d/network restart
EOF
exit 0
}