b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | #!/bin/sh /etc/rc.common |
| 2 | # |
| 3 | # Copyright (C) 2016-2019 eGloo, Incorporated |
| 4 | # |
| 5 | # This is free software, licensed under the GNU General Public License v2. |
| 6 | |
| 7 | START=50 |
| 8 | STOP=50 |
| 9 | |
| 10 | USE_PROCD=1 |
| 11 | PROG=/usr/sbin/netifyd |
| 12 | |
| 13 | start_netifyd() { |
| 14 | local instance enabled autoconfig internal_if external_if |
| 15 | |
| 16 | instance="$1" |
| 17 | |
| 18 | config_get_bool enabled "$instance" enabled 0 |
| 19 | [ "$enabled" -eq 0 ] && return 0 |
| 20 | |
| 21 | [ ! -d /var/run/netifyd ] && mkdir -p /var/run/netifyd |
| 22 | |
| 23 | config_get_bool autoconfig "$instance" autoconfig 1 |
| 24 | |
| 25 | if [ "$autoconfig" -gt 0 ] ; then |
| 26 | source /usr/share/netifyd/functions.sh |
| 27 | load_modules |
| 28 | NETIFYD_AUTODETECT=yes |
| 29 | NETIFYD_OPTS=$(auto_detect_options) |
| 30 | else |
| 31 | config_get internal_if "$instance" internal_if "eth0" |
| 32 | config_get external_if "$instance" external_if "eth1" |
| 33 | NETIFYD_OPTS="-E $external_if -I $internal_if" |
| 34 | fi |
| 35 | |
| 36 | procd_open_instance |
| 37 | procd_set_param command $PROG -R $NETIFYD_OPTS |
| 38 | procd_set_param file /etc/netifyd.conf |
| 39 | procd_set_param respawn |
| 40 | procd_close_instance |
| 41 | } |
| 42 | |
| 43 | start_service() { |
| 44 | config_load netifyd |
| 45 | config_foreach start_netifyd netifyd |
| 46 | } |