|
|
- #!/bin/sh /etc/rc.common
-
- START=50
- USE_PROCD=1
- ARGS=""
-
- append_prefix_off_link() {
- ARGS="$ARGS -a $1"
- }
-
- append_prefix_on_link() {
- ARGS="$ARGS -p $1"
- }
-
- append_dns() {
- ARGS="$ARGS --rdnss $1"
- }
-
- start_instance() {
- local cfg="$1" enabled device ifname default_lifetime
-
- ARGS=""
-
- config_get_bool enabled $cfg 'enabled' 1
- config_get device $cfg 'device'
- config_get ifname $cfg 'ifname'
- config_get default_lifetime $cfg 'default_lifetime'
-
- if [ "$enabled" != "1" ]; then
- exit 0
- fi
-
- if [ -n "$device" ] && [ -n "$ifname" ]; then
- echo "either set device or ifname" >&2
- exit 1
- fi
-
- if [ -z "$device" ] && [ -z "$ifname" ]; then
- echo "either set device or ifname" >&2
- exit 1
- fi
-
- if [ -z "$ifname" ]; then
- network_get_device 'ifname' "$ifname"
- fi
-
- if [ -z "$ifname" ]; then
- echo "no valid device or ifname set" >&2
- exit 1
- fi
-
- if [ -n "$default_lifetime" ]; then
- ARGS="$ARGS --default-lifetime $default_lifetime"
- fi
-
- ARGS="$ARGS -i $ifname"
-
-
- config_list_foreach $cfg 'prefix_off_link' append_prefix_off_link
- config_list_foreach $cfg 'prefix_on_link' append_prefix_on_link
- config_list_foreach $cfg "dns" append_dns
-
- procd_open_instance
- procd_set_param command /usr/sbin/uradvd $ARGS
- procd_set_param respawn
- procd_close_instance
- }
-
- start_service() {
- config_load uradvd
- config_foreach start_instance interface
- }
|